ELC in dev
ELC-lang
载入中...
搜索中...
未找到
elc::defs::memory::lifetime_n::move_assign_t结构体 参考
elc::defs::memory::lifetime_n::move_assign_t 的协作图:
[图例]

struct  array_move_assign_t
 
struct  may_overlap_t
 

Public 成员函数

template<class T >
requires able<T>
T & operator() (T &a, T &b) const noexcept(nothrow< T >)
 
constexpr array_move_assign_t operator[] (size_t a) const noexcept
 

静态 Public 成员函数

template<class T >
requires able<T>
static T & base_call (T &a, T &&b) noexcept(nothrow< T >)
 
template<class T >
requires able<T>
static T * base_call (T *to, T *from, size_t size) noexcept(nothrow< T >)
 

静态 Public 属性

template<class T >
static constexpr bool r_able =move_assign_able<T>
 
template<class T >
static constexpr bool able =r_able<T>?true:copy_assign.able<T>
 
template<class T >
static constexpr bool nothrow =r_able<T>?move_assign_nothrow<T>:copy_assign.nothrow<T>
 
template<class T >
static constexpr bool trivial =r_able<T>?move_assign_trivial<T>:copy_assign.trivial<T>
 
static constexpr struct elc::defs::memory::lifetime_n::move_assign_t::may_overlap_t may_overlap
 

详细描述

在文件 all_defs.cpp10106 行定义.

成员函数说明

◆ base_call() [1/2]

template<class T >
requires able<T>
static T & elc::defs::memory::lifetime_n::move_assign_t::base_call ( T &  a,
T &&  b 
)
inlinestaticnoexcept

在文件 all_defs.cpp10117 行定义.

10117 {
10118 if constexpr(r_able<T>)
10119 a=move(b);
10120 else
10121 copy_assign(a,b);
10122 return a;
10123 }
constexpr T down_cast(U a) noexcept
向下转型至
constexpr struct elc::defs::memory::lifetime_n::copy_assign_t copy_assign
constexpr struct elc::defs::memory::lifetime_n::move_t move

◆ base_call() [2/2]

template<class T >
requires able<T>
static T * elc::defs::memory::lifetime_n::move_assign_t::base_call ( T *  to,
T *  from,
size_t  size 
)
inlinestaticnoexcept

在文件 all_defs.cpp10125 行定义.

10125 {
10126 if constexpr(trivial<T>)
10127 ::std::memcpy(to,add_const(from),size*sizeof(T));
10128 else
10129 while(size--)
10130 base_call(to[size],from[size]);
10131 return to;
10132 }
constexpr size_t size(::size_t v)
constexpr to_t< T > to(T v)
constexpr const T add_const(T a) noexcept
对值追加const
static T & base_call(T &a, T &&b) noexcept(nothrow< T >)
函数调用图:

◆ operator()()

template<class T >
requires able<T>
T & elc::defs::memory::lifetime_n::move_assign_t::operator() ( T &  a,
T &  b 
) const
inlinenoexcept

在文件 all_defs.cpp10135 行定义.

10135 {
10136 return base_call(a,move(b));
10137 }

◆ operator[]()

constexpr array_move_assign_t elc::defs::memory::lifetime_n::move_assign_t::operator[] ( size_t  a) const
inlineconstexprnoexcept

在文件 all_defs.cpp10154 行定义.

10154{return{a};}

类成员变量说明

◆ able

template<class T >
constexpr bool elc::defs::memory::lifetime_n::move_assign_t::able =r_able<T>?true:copy_assign.able<T>
staticconstexpr

在文件 all_defs.cpp10110 行定义.

◆ may_overlap

constexpr struct elc::defs::memory::lifetime_n::move_assign_t::may_overlap_t elc::defs::memory::lifetime_n::move_assign_t::may_overlap
static

◆ nothrow

template<class T >
constexpr bool elc::defs::memory::lifetime_n::move_assign_t::nothrow =r_able<T>?move_assign_nothrow<T>:copy_assign.nothrow<T>
staticconstexpr

在文件 all_defs.cpp10112 行定义.

◆ r_able

template<class T >
constexpr bool elc::defs::memory::lifetime_n::move_assign_t::r_able =move_assign_able<T>
staticconstexpr

在文件 all_defs.cpp10108 行定义.

◆ trivial

template<class T >
constexpr bool elc::defs::memory::lifetime_n::move_assign_t::trivial =r_able<T>?move_assign_trivial<T>:copy_assign.trivial<T>
staticconstexpr

在文件 all_defs.cpp10114 行定义.


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