ELC in dev
ELC-lang
载入中...
搜索中...
未找到
elc::defs::core::binary_node_base_t结构体 参考abstract
类 elc::defs::core::binary_node_base_t 继承关系图:
[图例]
elc::defs::core::binary_node_base_t 的协作图:
[图例]

Public 类型

typedef binary_node_base_t this_t
 

Public 成员函数

virtual base_type_info_t get_type_info () const noexcept override final
 
virtual base_type_info_t get_additional_type_info () const noexcept=0
 

Protected 成员函数

virtual void throw_self_ptr () const =0
 
virtual void throw_self_ptr ()=0
 

友元

template<typename T >
maybe_fail_reference< T > maybe_fail_use_by_ref_as (ptr p) noexcept
 
template<typename T >
maybe_fail_reference< T > maybe_fail_use_by_ref_as (ptr p) noexcept
 
template<typename T >
const T & const_use_by_ref_as (const_ptr p) noexcept
 

详细描述

在文件 all_defs.cpp33421 行定义.

成员类型定义说明

◆ this_t

成员函数说明

◆ get_additional_type_info()

virtual base_type_info_t elc::defs::core::binary_node_base_t::get_additional_type_info ( ) const
pure virtualnoexcept

◆ get_type_info()

virtual base_type_info_t elc::defs::core::binary_node_base_t::get_type_info ( ) const
inlinefinaloverridevirtualnoexcept

实现了 elc::defs::core::node_like.

在文件 all_defs.cpp33424 行定义.

33424{return type_info<this_t>;}
constexpr T down_cast(U a) noexcept
向下转型至
这是这个函数的调用关系图:

◆ throw_self_ptr() [1/2]

virtual void elc::defs::core::binary_node_base_t::throw_self_ptr ( ) const
protectedpure virtual

◆ throw_self_ptr() [2/2]

virtual void elc::defs::core::binary_node_base_t::throw_self_ptr ( )
protectedpure virtual

友元及相关函数文档

◆ const_use_by_ref_as

template<typename T >
const T & const_use_by_ref_as ( const_ptr  p)
friend

在文件 all_defs.cpp33545 行定义.

33545 {
33547 if(p->get_type_info() == type_info<binary_node_base_t>){
33549 if(base_p->get_additional_type_info() == type_info<target_node_t>)
33551 elseif constexpr(::std::is_class_v<T> && !::std::is_final_v<T>){
33552 try{
33553 base_p->throw_self_ptr();
33554 }
33555 catch(const T*aret){
33556 return*aret;
33557 }
33558 catch(const void*){}
33559 }
33560 }
33562}
#define elseif
Definition all_defs.cpp:650

◆ maybe_fail_use_by_ref_as [1/2]

template<typename T >
maybe_fail_reference< T > maybe_fail_use_by_ref_as ( ptr  p)
friend

在文件 all_defs.cpp33522 行定义.

33522 {
33524 if(p->get_type_info() == type_info<binary_node_base_t>){
33526 if(base_p->get_additional_type_info() == type_info<target_node_t>)
33528 elseif constexpr(::std::is_class_v<T> && !::std::is_final_v<T>){
33529 try{
33530 base_p->throw_self_ptr();
33531 }
33532 catch(T*aret){
33533 return*aret;
33534 }
33535 catch(void*){}
33536 }
33537 }
33538 return note::fail;
33539}
constexpr struct elc::defs::base::note_n::fail_t fail

◆ maybe_fail_use_by_ref_as [2/2]

template<typename T >
maybe_fail_reference< T > maybe_fail_use_by_ref_as ( ptr  p)
friend

在文件 all_defs.cpp33522 行定义.

33522 {
33524 if(p->get_type_info() == type_info<binary_node_base_t>){
33526 if(base_p->get_additional_type_info() == type_info<target_node_t>)
33528 elseif constexpr(::std::is_class_v<T> && !::std::is_final_v<T>){
33529 try{
33530 base_p->throw_self_ptr();
33531 }
33532 catch(T*aret){
33533 return*aret;
33534 }
33535 catch(void*){}
33536 }
33537 }
33538 return note::fail;
33539}

该结构体的文档由以下文件生成: