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

Public 类型

typedef comn_ptr_t< T > base_t
 
typedef root_ptr_t< T > this_t
 
typedef ptr_t< T, ref_type, do_replace_checkbase_t
 
typedef same_ref_p_t< T, ref_typebase_t
 
- Public 类型 继承自 elc::defs::memory::ptr_n::base_ptr_t< T, ref_type, do_replace_check >
typedef ptr_t< T, ref_type, do_replace_checkbase_t
 
typedef base_ptr_t< T, ref_type, do_replace_checkthis_t
 
typedef same_ref_p_t< T, ref_typesame_ref
 
typedef same_ptr_p_t< T > same_ptr
 
typedef same_ref_p_t< T, ref_typebase_t
 
- Public 类型 继承自 elc::defs::memory::ptr_n::ptr_t< T, ref_type, do_replace_check >
typedef ptr_t< T, ref_type, do_replace_checkthis_t
 
typedef same_ref_p_t< T, ref_typebase_t
 
typedef same_ref_p_t< T, ref_typesame_ref
 
typedef same_ptr_p_t< T > same_ptr
 

Public 成员函数

template<class assign_t >
requires (bool(requires{ (::std::declval< base_t >())=(::std::declval< assign_t >()) ;}))
this_toperator= (assign_t &&a) noexcept(noexcept((base_t::operator=(forward< assign_t >(a)))))
 
virtual T & get () noexcept override
 
virtual void map_and_mark () noexcept override
 
- Public 成员函数 继承自 elc::defs::memory::ptr_n::base_ptr_t< T, ref_type, do_replace_check >
 base_ptr_t (base_ptr_t &a) noexcept
 
 base_ptr_t (base_ptr_t &&a) noexcept
 
T * operator-> () const noexcept(get_nothrow)
 
T & operator* () const noexcept(get_nothrow)
 
 operator bool () const noexcept(get_nothrow)
 
auto operator! () const noexcept(get_nothrow)
 
 operator T* () const noexcept(get_nothrow)
 
base_ptr_toperator= (T *a) &noexcept(reset_nothrow)
 
base_ptr_toperator= (const same_ptr &a) &noexcept(reset_nothrow &&get_nothrow)
 
base_ptr_toperator= (const base_ptr_t &a) &noexcept(reset_nothrow &&get_nothrow)
 
base_ptr_toperator= (same_ref &&a) &noexcept
 
base_ptr_toperator= (base_ptr_t &&a) &noexcept
 
base_ptr_toperator= (null_ptr_t) &noexcept(reset_nothrow)
 
base_ptr_toperator= (nullptr_t) &noexcept(reset_nothrow)
 
 operator bool () noexcept(get_nothrow)
 
 operator for_delete_t * () noexcept(get_nothrow)
 
template<typename... Args>
requires (invoke<T>.able<Args...>)
decltype(autooperator() (Args &&... rest) noexcept(invoke< T >.nothrow< Args... >)
 
void reset (T *a) const noexcept(reset_nothrow)
 
void reset (nullptr_t=nullptr) const noexcept(reset_nothrow)
 
T * get () const noexcept(get_nothrow)
 
void swap_with (same_ref_p_t &a) noexcept
 
- Public 成员函数 继承自 elc::defs::memory::ptr_n::ptr_t< T, ref_type, do_replace_check >
 ptr_t (T *a, special_init_t) noexcept
 
constexpr ptr_t (T *a) noexcept
 
 ptr_t (const same_ptr &a) noexcept
 
 ptr_t (const same_ref &a) noexcept
 
 ptr_t (const ptr_t &a) noexcept
 
 ptr_t (const ptr_t< remove_cv< T >, ref_type, do_replace_check > &a) noexcept
 
 ptr_t (ptr_t &&a) noexcept
 
constexpr ptr_t (nullptr_t=nullptr) noexcept
 
constexpr ptr_t (null_ptr_t) noexcept
 
 ~ptr_t () noexcept(cut_nothrow)
 
void reset (T *a) const noexcept(reset_nothrow)
 
void reset (nullptr_t=nullptr) const noexcept(reset_nothrow)
 
void replace_check () const noexcept(replace_check_nothrow)
 
void do_replace (T *p) noexcept(replace_check_nothrow &&reset_nothrow)
 
template<typename ref_type_ , bool do_replace_check_>
void do_replace (const ptr_t< T, ref_type_, do_replace_check_ > &p) noexcept(replace_check_nothrow &&reset_nothrow)
 
T * get () const noexcept(get_nothrow)
 
bool unique () const noexcept
 
constexpr conditional< do_replace_check &&type_info< T >. template has_attribute_helper< replace_able >(), unstable_hash_t, hash_thash () const noexcept(noexcept((elc::defs::hash(get()))))
 
auto operator== (const T *a) const noexcept(noexcept((pointer_equal(add_const((::std::declval< const this_t & >()).get()), a))))
 
auto operator== (nullptr_t) const noexcept(noexcept((operator==(null_ptr))))
 
auto operator== (null_ptr_t) const noexcept(noexcept((operator==((T *) null_ptr))))
 
template<typename ref_type_ , bool do_replace_check_>
auto operator== (const ptr_t< T, ref_type_, do_replace_check_ > &b) const noexcept(noexcept((pointer_equal((::std::declval< const this_t & >()).get(), b.get()))))
 
template<typename ref_type_ , bool do_replace_check_>
requires (type_info<remove_cv<T>>!=type_info<T>)
auto operator== (const ptr_t< const T, ref_type_, do_replace_check_ > &b) const noexcept(noexcept((pointer_equal((::std::declval< const this_t & >()).get(), b.get()))))
 
template<typename ref_type_ , bool do_replace_check_>
requires (type_info<remove_cv<T>>!=type_info<T>)
auto operator== (const ptr_t< remove_cv< T >, ref_type_, do_replace_check_ > &b) const noexcept(noexcept((pointer_equal((::std::declval< const this_t & >()).get(), add_const(b.get())))))
 
void add_ref () const noexcept
 
void cut_ref () const noexcept(noexcept((cut_ref(nullptr))))
 
void swap_with (same_ref_p_t &a) noexcept
 
- Public 成员函数 继承自 elc::defs::memory::ptr_n::same_ref_p_t< T, ref_type >
 same_ref_p_t (T *a) noexcept
 
 same_ref_p_t (const same_ptr_p_t< T > &a) noexcept
 
void swap_with (same_ref_p_t &a) noexcept
 
- Public 成员函数 继承自 elc::defs::memory::ptr_n::same_ptr_p_t< T >
 same_ptr_p_t (const same_ptr_p_t &) noexcept=default
 
T * get () const noexcept
 

额外继承的成员函数

- 静态 Public 成员函数 继承自 elc::defs::memory::ptr_n::ptr_t< T, ref_type, do_replace_check >
static void add_ref (T *a) noexcept
 
static void cut_ref (T *a) noexcept(cut_nothrow)
 
- Public 属性 继承自 elc::defs::memory::ptr_n::base_ptr_t< T, ref_type, do_replace_check >
T * _to
 
- Public 属性 继承自 elc::defs::memory::ptr_n::ptr_t< T, ref_type, do_replace_check >
T * _to
 
- 静态 Public 属性 继承自 elc::defs::memory::ptr_n::base_ptr_t< T, ref_type, do_replace_check >
static constexpr bool get_nothrow
 
static constexpr bool reset_nothrow
 
- 静态 Public 属性 继承自 elc::defs::memory::ptr_n::ptr_t< T, ref_type, do_replace_check >
static constexpr bool reset_nothrow =cut_nothrow
 
static constexpr bool replace_check_nothrow =(type_info<T>. template not_has_has_attribute_helper< replace_able >())||reset_nothrow
 
static constexpr bool get_nothrow =replace_check_nothrow
 
static constexpr bool cut_nothrow
 
- 静态 Public 属性 继承自 elc::defs::memory::ptr_n::same_ref_p_t< T, ref_type >
static constexpr bool cut_nothrow =noexcept((::std::declval< ref_type >()).cut_ref())
 
- Protected 成员函数 继承自 elc::defs::memory::ptr_n::same_ref_p_t< T, ref_type >
void cut_ref () const noexcept(noexcept((cut_ref(nullptr))))
 
void add_ref () const noexcept
 
- Protected 成员函数 继承自 elc::defs::memory::ptr_n::same_ptr_p_t< T >
 same_ptr_p_t (T *a) noexcept
 
- 静态 Protected 成员函数 继承自 elc::defs::memory::ptr_n::same_ref_p_t< T, ref_type >
static void cut_ref (T *a) noexcept(cut_nothrow)
 
static void add_ref (T *a) noexcept
 
- Protected 属性 继承自 elc::defs::memory::ptr_n::same_ptr_p_t< T >
T * _to
 

详细描述

template<class T, class enable_state = ::std::enable_if_t< was_ref_able<T> && comn_ptr_t<T>::replace_check_nothrow && type_info<T>. template has_attribute_helper< gc_n::have_root >() >>
struct elc::defs::memory::ptr_n::root_ptr_t< T, enable_state >

在文件 all_defs.cpp26641 行定义.

成员类型定义说明

◆ base_t [1/3]

template<class T , class enable_state = ::std::enable_if_t< was_ref_able<T> && comn_ptr_t<T>::replace_check_nothrow && type_info<T>. template has_attribute_helper< gc_n::have_root >() >>
typedef comn_ptr_t<T> elc::defs::memory::ptr_n::root_ptr_t< T, enable_state >::base_t

在文件 all_defs.cpp26642 行定义.

◆ base_t [2/3]

template<class T , class enable_state = ::std::enable_if_t< was_ref_able<T> && comn_ptr_t<T>::replace_check_nothrow && type_info<T>. template has_attribute_helper< gc_n::have_root >() >>
typedef ptr_t<T,ref_type,do_replace_check> elc::defs::memory::ptr_n::base_ptr_t< T, ref_type, do_replace_check >::base_t

在文件 all_defs.cpp23026 行定义.

◆ base_t [3/3]

template<class T , class enable_state = ::std::enable_if_t< was_ref_able<T> && comn_ptr_t<T>::replace_check_nothrow && type_info<T>. template has_attribute_helper< gc_n::have_root >() >>
typedef same_ref_p_t<T,ref_type> elc::defs::memory::ptr_n::ptr_t< T, ref_type, do_replace_check >::base_t

在文件 all_defs.cpp23038 行定义.

◆ this_t

template<class T , class enable_state = ::std::enable_if_t< was_ref_able<T> && comn_ptr_t<T>::replace_check_nothrow && type_info<T>. template has_attribute_helper< gc_n::have_root >() >>
typedef root_ptr_t<T> elc::defs::memory::ptr_n::root_ptr_t< T, enable_state >::this_t

在文件 all_defs.cpp26643 行定义.

成员函数说明

◆ get()

template<class T , class enable_state = ::std::enable_if_t< was_ref_able<T> && comn_ptr_t<T>::replace_check_nothrow && type_info<T>. template has_attribute_helper< gc_n::have_root >() >>
virtual T & elc::defs::memory::ptr_n::root_ptr_t< T, enable_state >::get ( )
inlineoverridevirtualnoexcept

在文件 all_defs.cpp26651 行定义.

26651 {
26652 return base_t::operator*();
26653 }
T & operator*() const noexcept(get_nothrow)

◆ map_and_mark()

template<class T , class enable_state = ::std::enable_if_t< was_ref_able<T> && comn_ptr_t<T>::replace_check_nothrow && type_info<T>. template has_attribute_helper< gc_n::have_root >() >>
virtual void elc::defs::memory::ptr_n::root_ptr_t< T, enable_state >::map_and_mark ( )
inlineoverridevirtualnoexcept

在文件 all_defs.cpp26654 行定义.

26654 {
26655 map_and_mark_for_gc(&**this);
26656 }
void map_and_mark_for_gc() noexcept=delete
函数调用图:

◆ operator=()

template<class T , class enable_state = ::std::enable_if_t< was_ref_able<T> && comn_ptr_t<T>::replace_check_nothrow && type_info<T>. template has_attribute_helper< gc_n::have_root >() >>
template<class assign_t >
requires (bool(requires{ (::std::declval< base_t >())=(::std::declval< assign_t >()) ;}))
this_t & elc::defs::memory::ptr_n::root_ptr_t< T, enable_state >::operator= ( assign_t &&  a)
inlinenoexcept

在文件 all_defs.cpp26647 行定义.

26647 {
26649 return*this;
26650 }
constexpr T down_cast(U a) noexcept
向下转型至
base_ptr_t & operator=(T *a) &noexcept(reset_nothrow)

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