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

Public 类型

typedef binary_node_t< T > this_t
 
typedef binary_node_base_t base_t
 
- Public 类型 继承自 elc::defs::core::binary_node_base_t
typedef binary_node_base_t this_t
 

Public 成员函数

 binary_node_t (const T &a) noexcept
 
 binary_node_t (T &&a) noexcept
 
virtual base_type_info_t get_additional_type_info () const noexcept override
 
virtual operator hash_t () const noexcept(hash_nothrow_helper) override
 
virtual value arec (const value index) noexcept(arec_nothrow_helper) override
 
virtual void clear () noexcept(clear_nothrow_helper) override
 
- Public 成员函数 继承自 elc::defs::core::binary_node_base_t
virtual base_type_info_t get_type_info () const noexcept override final
 

Public 属性

_m
 

Protected 成员函数

virtual void throw_self_ptr () const override
 
virtual void throw_self_ptr () override
 
virtual logical_bool was_eq_with (const_ptr a) const noexcept override
 
virtual logical_bool was_equal_with (const_ptr a) const noexcept override
 

详细描述

template<typename T>
struct elc::defs::core::binary_node_t< T >

在文件 all_defs.cpp33437 行定义.

成员类型定义说明

◆ base_t

在文件 all_defs.cpp33439 行定义.

◆ this_t

在文件 all_defs.cpp33438 行定义.

构造及析构函数说明

◆ binary_node_t() [1/2]

template<typename T >
elc::defs::core::binary_node_t< T >::binary_node_t ( const T &  a)
inlinenoexcept

在文件 all_defs.cpp33443 行定义.

33443:_m(a){}
constexpr T down_cast(U a) noexcept
向下转型至

◆ binary_node_t() [2/2]

template<typename T >
elc::defs::core::binary_node_t< T >::binary_node_t ( T &&  a)
inlinenoexcept

在文件 all_defs.cpp33444 行定义.

33444:_m(a){}

成员函数说明

◆ arec()

template<typename T >
virtual value elc::defs::core::binary_node_t< T >::arec ( const value  index)
inlineoverridevirtualnoexcept

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

在文件 all_defs.cpp33483 行定义.

33483 {
33484 if constexpr(was_not_an_ill_form(arec_as_value(_m,index)))
33485 return arec_as_value(_m,index);
33486 else
33487 return as_value(this);
33488 }
#define was_not_an_ill_form(...)
Definition all_defs.cpp:611
decltype(auto) as_value(T &&a) noexcept(as_value_nothrow_helper< T >())
value arec_as_value(string_t< char_T > &str, const value index)
函数调用图:

◆ clear()

template<typename T >
virtual void elc::defs::core::binary_node_t< T >::clear ( )
inlineoverridevirtualnoexcept

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

在文件 all_defs.cpp33494 行定义.

33494 {
33495 if constexpr(was_not_an_ill_form(declvalue(T).clear()))
33496 _m.clear();
33497 else
33498 re_construct(&_m);
33499 }
#define declvalue(...)
Definition all_defs.cpp:556
constexpr struct elc::defs::memory::lifetime_n::re_construct_t re_construct
virtual void clear() noexcept(clear_nothrow_helper) override

◆ get_additional_type_info()

template<typename T >
virtual base_type_info_t elc::defs::core::binary_node_t< T >::get_additional_type_info ( ) const
inlineoverridevirtualnoexcept

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

在文件 all_defs.cpp33446 行定义.

33446{return type_info<this_t>;}

◆ operator hash_t()

template<typename T >
virtual elc::defs::core::binary_node_t< T >::operator hash_t ( ) const
inlineexplicitoverridevirtualnoexcept

重载 elc::defs::core::node_like .

在文件 all_defs.cpp33451 行定义.

33451 {
33452 if constexpr(hash.able<T>)
33453 return hash(_m);
33454 else
33455 #if defined(_MSC_VER)
33456 [[gsl::suppress(f.6)]]
33457 #endif
33458 return node_like::operator hash_t();
33459 }
#define hash
hash_n::hash_value_t hash_t

◆ throw_self_ptr() [1/2]

template<typename T >
virtual void elc::defs::core::binary_node_t< T >::throw_self_ptr ( ) const
inlineoverrideprotectedvirtual

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

在文件 all_defs.cpp33461 行定义.

33461{throw&_m;}

◆ throw_self_ptr() [2/2]

template<typename T >
virtual void elc::defs::core::binary_node_t< T >::throw_self_ptr ( )
inlineoverrideprotectedvirtual

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

在文件 all_defs.cpp33462 行定义.

33462{throw&_m;}

◆ was_eq_with()

template<typename T >
virtual logical_bool elc::defs::core::binary_node_t< T >::was_eq_with ( const_ptr  a) const
inlineoverrideprotectedvirtualnoexcept

重载 elc::defs::core::node_like .

在文件 all_defs.cpp33463 行定义.

33463 {
33464 if constexpr(equal.able<T>){
33465 if(a->get_type_info() != this->get_type_info())
33466 return false;
33468 if(base_p->get_type_info() != this->get_type_info())
33469 return false;
33471 return _m==p->_m;
33472 }
33473 else
33474 return node_like::was_eq_with(a);
33475 }
constexpr struct elc::defs::base::equal_t equal
static constexpr bool able
virtual base_type_info_t get_type_info() const noexcept override final
virtual logical_bool was_eq_with(const_ptr a) const noexcept
函数调用图:

◆ was_equal_with()

template<typename T >
virtual logical_bool elc::defs::core::binary_node_t< T >::was_equal_with ( const_ptr  a) const
inlineoverrideprotectedvirtualnoexcept

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

在文件 all_defs.cpp33476 行定义.

33476 {
33477 return was_eq_with(a);
33478 }
virtual logical_bool was_eq_with(const_ptr a) const noexcept override

类成员变量说明

◆ _m

template<typename T >
T elc::defs::core::binary_node_t< T >::_m

在文件 all_defs.cpp33441 行定义.


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