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

struct  base_data_t
 
struct  constexpr_data_t
 
struct  null_data_t
 
struct  variable_data_t
 

Public 类型

typedef value this_t
 

Public 成员函数

 value () noexcept
 
constexpr value (special_init_t) noexcept
 
 value (ptr a) noexcept
 
 value (node_like *a) noexcept
 
 value (base_data_t *a) noexcept
 
 value (const this_t &a) noexcept=default
 
 value (this_t &&a) noexcept=default
 
 ~value () noexcept=default
 
this_toperator= (ptr a)
 
this_toperator= (auto &&a)
 
 operator ptr ()
 
 operator const_ptr () const
 
ptr operator& ()
 
const_ptr operator& () const
 
 operator bool () const
 
void ref_to (this_t a) noexcept
 
void un_ref () noexcept
 
void re_ref_to (this_t a) noexcept
 
this_toperator>> (this_t a) noexcept
 
template<typename T >
auto operator[] (T &&index)
 
template<typename... Args>
requires (invoke<node_like>.able<Args...>)
auto operator() (Args &&... rest) noexcept(invoke< node_like >.nothrow< Args... >)
 
auto operator== (auto &&a) const noexcept
 
auto operator!= (auto &&a) const
 
 operator ptr::for_delete_t * ()
 
- 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::core::value::null_data_t null_data
 

详细描述

在文件 all_defs.cpp32530 行定义.

成员类型定义说明

◆ this_t

构造及析构函数说明

◆ value() [1/7]

elc::defs::core::value::value ( )
inlineexplicitnoexcept

在文件 all_defs.cpp32605 行定义.

32605:_m(get<variable_data_t>(null_ptr)){}
constexpr T down_cast(U a) noexcept
向下转型至

◆ value() [2/7]

constexpr elc::defs::core::value::value ( special_init_t  )
inlineexplicitconstexprnoexcept

在文件 all_defs.cpp32606 行定义.

32606:_m(null_ptr){}

◆ value() [3/7]

elc::defs::core::value::value ( ptr  a)
inlineexplicitnoexcept

在文件 all_defs.cpp32607 行定义.

◆ value() [4/7]

elc::defs::core::value::value ( node_like a)
inlineexplicitnoexcept

在文件 all_defs.cpp32608 行定义.

32608:value(ptr(a)){}
comn_ptr_t< node_like > ptr

◆ value() [5/7]

elc::defs::core::value::value ( base_data_t a)
inlinenoexcept

在文件 all_defs.cpp32609 行定义.

32609:_m(a){}

◆ value() [6/7]

elc::defs::core::value::value ( const this_t a)
defaultnoexcept

◆ value() [7/7]

elc::defs::core::value::value ( this_t &&  a)
defaultnoexcept

◆ ~value()

elc::defs::core::value::~value ( )
defaultnoexcept

成员函数说明

◆ operator bool()

elc::defs::core::value::operator bool ( ) const
inlineexplicit

在文件 all_defs.cpp32635 行定义.

32635{return bool(_m->get_value());}

◆ operator const_ptr()

elc::defs::core::value::operator const_ptr ( ) const
inline

在文件 all_defs.cpp32626 行定义.

32626 {
32627 return _m->get_value();
32628 }

◆ operator ptr()

elc::defs::core::value::operator ptr ( )
inline

在文件 all_defs.cpp32623 行定义.

32623 {
32624 return _m->get_value();
32625 }

◆ operator ptr::for_delete_t *()

elc::defs::core::value::operator ptr::for_delete_t * ( )
inline

在文件 all_defs.cpp32668 行定义.

32668 {
32669 return _m->get_value();
32670 }

◆ operator!=()

auto elc::defs::core::value::operator!= ( auto &&  a) const
inline

在文件 all_defs.cpp32665 行定义.

32665 {
32666 return !operator==(a);
32667 }
auto operator==(auto &&a) const noexcept
函数调用图:

◆ operator&() [1/2]

ptr elc::defs::core::value::operator& ( )
inline

在文件 all_defs.cpp32629 行定义.

32629 {
32630 return operator ptr();
32631 }

◆ operator&() [2/2]

const_ptr elc::defs::core::value::operator& ( ) const
inline

在文件 all_defs.cpp32632 行定义.

32632 {
32633 return operator const_ptr();
32634 }
comn_ptr_t< const node_like > const_ptr

◆ operator()()

template<typename... Args>
requires (invoke<node_like>.able<Args...>)
auto elc::defs::core::value::operator() ( Args &&...  rest)
inlinenoexcept

在文件 all_defs.cpp32656 行定义.

32656{return(*operator&())(forward<Args>(rest)...);}

◆ operator=() [1/2]

this_t & elc::defs::core::value::operator= ( auto &&  a)
inline

在文件 all_defs.cpp32619 行定义.

32619 {
32620 return operator=(as_ptr(a));
32621 }
decltype(auto) as_ptr(T &&a) noexcept(as_ptr_nothrow_helper< T >())
this_t & operator=(ptr a)
函数调用图:

◆ operator=() [2/2]

this_t & elc::defs::core::value::operator= ( ptr  a)
inline

在文件 all_defs.cpp32615 行定义.

32615 {
32616 _m->be_set(a);
32617 return *this;
32618 }

◆ operator==()

auto elc::defs::core::value::operator== ( auto &&  a) const
inlinenoexcept

在文件 all_defs.cpp32657 行定义.

32657 {
32658 try{
32659 return const_ptr(*this) == const_ptr(as_value(a));
32660 }
32661 catch(...){
32662 return unknown;
32663 }
32664 }
constexpr logical_bool unknown
decltype(auto) as_value(T &&a) noexcept(as_value_nothrow_helper< T >())
函数调用图:

◆ operator>>()

this_t & elc::defs::core::value::operator>> ( this_t  a)
inlinenoexcept

在文件 all_defs.cpp32646 行定义.

32646 {
32647 a.ref_to(*this);
32648 return*this;
32649 }

◆ operator[]()

template<typename T >
auto elc::defs::core::value::operator[] ( T &&  index)
inline

在文件 all_defs.cpp32652 行定义.

32652 {
32653 return (*operator&())[forward<T>(index)];
32654 }

◆ re_ref_to()

void elc::defs::core::value::re_ref_to ( this_t  a)
inlinenoexcept

在文件 all_defs.cpp32643 行定义.

32643 {
32644 _m=a._m;
32645 }

◆ ref_to()

void elc::defs::core::value::ref_to ( this_t  a)
inlinenoexcept

在文件 all_defs.cpp32637 行定义.

32637 {
32638 _m.do_replace(a._m);
32639 }

◆ un_ref()

void elc::defs::core::value::un_ref ( )
inlinenoexcept

在文件 all_defs.cpp32640 行定义.

32640 {
32641 _m=_m->copy();
32642 }

类成员变量说明

◆ null_data

elc::defs::core::value::null_data_t elc::defs::core::value::null_data
static

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