ELC in dev
ELC-lang
载入中...
搜索中...
未找到
elc::defs::memory::lifetime_n::move_t结构体 参考

struct  array_move_t
 

Public 成员函数

template<class T >
requires able<T>
T * operator() (T *to, T *from) const noexcept(nothrow< T >)
 
template<class T >
requires able<T>
T * operator() (note::to_t< T * >to, note::from_t< T * >from) const noexcept(nothrow< T >)
 
template<class T >
requires able<T>
T * operator() (note::from_t< T * >from, note::to_t< T * >to) const noexcept(nothrow< T >)
 
constexpr array_move_t operator[] (size_t a) const noexcept
 
template<class T >
constexpr const T && operator() (const T &a) const noexcept
 
template<class T >
constexpr remove_ref< T > && operator() (T &&a) const noexcept
 

静态 Public 成员函数

template<class T >
requires able<T>
static T * base_call (T *to, T *from) 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 able =move_construct.able<T>&&destruct.able<T>
 
template<class T >
static constexpr bool nothrow =move_construct.nothrow<T>&&destruct.nothrow<T>
 
template<class T >
static constexpr bool trivial =move_construct.trivial<T>&&destruct.trivial<T>
 

详细描述

在文件 all_defs.cpp9955 行定义.

成员函数说明

◆ base_call() [1/2]

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

在文件 all_defs.cpp9964 行定义.

9964 {
9965 move_construct(to,from);
9966 destruct(from);
9967 return to;
9968 }
constexpr to_t< T > to(T v)
constexpr struct elc::defs::memory::lifetime_n::move_construct_t move_construct
constexpr struct elc::defs::memory::lifetime_n::destruct_t destruct

◆ base_call() [2/2]

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

在文件 all_defs.cpp9970 行定义.

9970 {
9971 if constexpr(type_info<T>.has_attribute(never_in_array))
9972 template_error("You cannot perform array operations on never_in_array type.");
9974 destruct[size](from);
9975 return to;
9976 }
#define template_error(reason)
Definition all_defs.cpp:559
constexpr size_t size(::size_t v)
constexpr from_t< T > from(T v)
constexpr T down_cast(U a) noexcept
向下转型至

◆ operator()() [1/5]

template<class T >
constexpr const T && elc::defs::memory::lifetime_n::move_t::operator() ( const T &  a) const
inlineconstexprnoexcept

在文件 all_defs.cpp10010 行定义.

10010 {
10011 return static_cast<const T&&>(a);
10012 }

◆ operator()() [2/5]

template<class T >
requires able<T>
T * elc::defs::memory::lifetime_n::move_t::operator() ( note::from_t< T * >  from,
note::to_t< T * >  to 
) const
inlinenoexcept

在文件 all_defs.cpp9987 行定义.

9988 {return base_call(to(),from());}
static T * base_call(T *to, T *from) noexcept(nothrow< T >)

◆ operator()() [3/5]

template<class T >
requires able<T>
T * elc::defs::memory::lifetime_n::move_t::operator() ( note::to_t< T * >  to,
note::from_t< T * >  from 
) const
inlinenoexcept

在文件 all_defs.cpp9983 行定义.

9984 {return base_call(to(),from());}

◆ operator()() [4/5]

template<class T >
constexpr remove_ref< T > && elc::defs::memory::lifetime_n::move_t::operator() ( T &&  a) const
inlineconstexprnoexcept

在文件 all_defs.cpp10014 行定义.

10014 {
10015 return static_cast<remove_ref<T>&&>(a);
10016 }

◆ operator()() [5/5]

template<class T >
requires able<T>
T * elc::defs::memory::lifetime_n::move_t::operator() ( T *  to,
T *  from 
) const
inlinenoexcept

在文件 all_defs.cpp9979 行定义.

9980 {return base_call(to,from);}

◆ operator[]()

constexpr array_move_t elc::defs::memory::lifetime_n::move_t::operator[] ( size_t  a) const
inlineconstexprnoexcept

在文件 all_defs.cpp10005 行定义.

10005{return{a};}

类成员变量说明

◆ able

template<class T >
constexpr bool elc::defs::memory::lifetime_n::move_t::able =move_construct.able<T>&&destruct.able<T>
staticconstexpr

在文件 all_defs.cpp9957 行定义.

◆ nothrow

template<class T >
constexpr bool elc::defs::memory::lifetime_n::move_t::nothrow =move_construct.nothrow<T>&&destruct.nothrow<T>
staticconstexpr

在文件 all_defs.cpp9959 行定义.

◆ trivial

template<class T >
constexpr bool elc::defs::memory::lifetime_n::move_t::trivial =move_construct.trivial<T>&&destruct.trivial<T>
staticconstexpr

在文件 all_defs.cpp9961 行定义.


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