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

Public 成员函数

constexpr replace_able () noexcept
 
constexpr ~replace_able () noexcept
 
constexpr bool replaced () const noexcept
 
constexpr T * get_ptr () const noexcept
 
constexpr void be_replace_as (T *new_p) noexcept
 
constexpr void be_replace_as (nullptr_t) noexcept
 
- Public 成员函数 继承自 elc::defs::base::non_copy_assign_able
constexpr non_copy_assign_able () noexcept=default
 
constexpr non_copy_assign_able (const non_copy_assign_able &) noexcept=default
 
constexpr non_copy_assign_able (non_copy_assign_able &&) noexcept=default
 
constexpr non_copy_assign_ableoperator= (const non_copy_assign_able &) &noexcept=delete
 
constexpr non_copy_assign_ableoperator= (non_copy_assign_able &&) &noexcept=default
 
- Public 成员函数 继承自 elc::defs::base::non_copy_construct_able
constexpr non_copy_construct_able ()=default
 
constexpr non_copy_construct_able (const non_copy_construct_able &)=delete
 
constexpr non_copy_construct_able (non_copy_construct_able &&)=default
 
constexpr non_copy_construct_ableoperator= (const non_copy_construct_able &) &noexcept=default
 
constexpr non_copy_construct_ableoperator= (non_copy_construct_able &&) &noexcept=default
 
- Public 成员函数 继承自 elc::defs::base::non_move_assign_able
constexpr non_move_assign_able () noexcept=default
 
constexpr non_move_assign_able (const non_move_assign_able &) noexcept=default
 
constexpr non_move_assign_able (non_move_assign_able &&) noexcept=default
 
constexpr non_move_assign_ableoperator= (const non_move_assign_able &) &noexcept=default
 
constexpr non_move_assign_ableoperator= (non_move_assign_able &&) &noexcept=delete
 
- Public 成员函数 继承自 elc::defs::base::non_move_construct_able
constexpr non_move_construct_able ()=default
 
constexpr non_move_construct_able (const non_move_construct_able &)=default
 
constexpr non_move_construct_able (non_move_construct_able &&)=delete
 
constexpr non_move_construct_ableoperator= (const non_move_construct_able &) &noexcept=default
 
constexpr non_move_construct_ableoperator= (non_move_construct_able &&) &noexcept=default
 

额外继承的成员函数

- Protected 成员函数 继承自 elc::defs::base::attribute< T, replace_able< T > >
constexpr T * get_handle () noexcept
 
constexpr const T * get_handle () const noexcept
 

详细描述

template<typename T>
struct elc::defs::memory::others_n::replace_able< T >

在文件 all_defs.cpp23408 行定义.

构造及析构函数说明

◆ replace_able()

template<typename T >
constexpr elc::defs::memory::others_n::replace_able< T >::replace_able ( )
inlineconstexprnoexcept

在文件 all_defs.cpp23412 行定义.

23412:_m(get_handle(this)){}
friend U * get_handle(attribute< U, another_attribute_name > *) noexcept

◆ ~replace_able()

template<typename T >
constexpr elc::defs::memory::others_n::replace_able< T >::~replace_able ( )
inlineconstexprnoexcept

在文件 all_defs.cpp23413 行定义.

23413 {
23414 if(replaced())
23415 attribute_ptr_cast<ref_able>(_m)->cut_ref();
23416 }
constexpr T down_cast(U a) noexcept
向下转型至
constexpr bool replaced() const noexcept

成员函数说明

◆ be_replace_as() [1/2]

template<typename T >
constexpr void elc::defs::memory::others_n::replace_able< T >::be_replace_as ( nullptr_t  )
inlineconstexprnoexcept

在文件 all_defs.cpp23431 行定义.

23431{be_replace_as(null_ptr);}
constexpr void be_replace_as(T *new_p) noexcept
函数调用图:
这是这个函数的调用关系图:

◆ be_replace_as() [2/2]

template<typename T >
constexpr void elc::defs::memory::others_n::replace_able< T >::be_replace_as ( T *  new_p)
inlineconstexprnoexcept

在文件 all_defs.cpp23424 行定义.

23424 {
23425 if(replaced())
23426 attribute_ptr_cast<ref_able>(_m)->cut_ref();
23427 _m=new_p;
23428 if(replaced())
23429 attribute_ptr_cast<ref_able>(_m)->add_ref();
23430 }

◆ get_ptr()

template<typename T >
constexpr T * elc::defs::memory::others_n::replace_able< T >::get_ptr ( ) const
inlineconstexprnoexcept

在文件 all_defs.cpp23418 行定义.

23418 {
23419 if(!replaced())
23420 return _m;
23421 else
23422 return attribute_ptr_cast<replace_able>(_m)->get_ptr();
23423 }

◆ replaced()

template<typename T >
constexpr bool elc::defs::memory::others_n::replace_able< T >::replaced ( ) const
inlineconstexprnoexcept

在文件 all_defs.cpp23417 行定义.

23417{return _m!=get_handle(this);}
函数调用图:

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