ELC in dev
ELC-lang
载入中...
搜索中...
未找到
elc::defs::memory::alloc_n::alloc_t< T > 模板结构体 参考

用于对特定类型进行alloc的类 更多...

类 elc::defs::memory::alloc_n::alloc_t< T > 继承关系图:
[图例]
elc::defs::memory::alloc_n::alloc_t< T > 的协作图:
[图例]

struct  alloc_array_t
 

Public 类型

typedef base_alloc_t base_t
 

Public 成员函数

T * operator() () const noexcept
 
T * operator() (size_t size) const noexcept
 
constexpr alloc_array_t operator[] (size_t a) const noexcept
 

静态 Public 成员函数

static T * base_call () noexcept
 
static T * base_call (size_t size) noexcept
 

详细描述

template<class T>
struct elc::defs::memory::alloc_n::alloc_t< T >

用于对特定类型进行alloc的类

警告
这个类不会对内存进行初始化,如需要进行new like操作,请使用 get_t

在文件 all_defs.cpp20882 行定义.

成员类型定义说明

◆ base_t

在文件 all_defs.cpp20883 行定义.

成员函数说明

◆ base_call() [1/2]

template<class T >
static T * elc::defs::memory::alloc_n::alloc_t< T >::base_call ( )
inlinestaticnoexcept

在文件 all_defs.cpp20884 行定义.

20884 {
20885 void*tmp;
20887 return reinterpret_cast<T*>(tmp);
20888 }
auto & assign(T &&a, U &&b) noexcept(noexcept((a=b)))
Definition all_defs.cpp:975
constexpr T down_cast(U a) noexcept
向下转型至
void * alloc_method(type_info_t< T >) noexcept
void gc_for_alloc() noexcept
当alloc失败时调用此函数
函数调用图:

◆ base_call() [2/2]

template<class T >
static T * elc::defs::memory::alloc_n::alloc_t< T >::base_call ( size_t  size)
inlinestaticnoexcept

在文件 all_defs.cpp20889 行定义.

20889 {
20890 const APIs::alloc::source_location_guard slg{1};
20891 if constexpr(type_info<T>.has_attribute(never_in_array))
20892 template_error("You can\'t alloc an array for never_in_array type.");
20893 if(size){//null_ptr不一定等价于nullptr,请勿删除本行
20894 void*tmp;
20896 return reinterpret_cast<T*>(tmp);
20897 }else return null_ptr;
20898 }
#define template_error(reason)
Definition all_defs.cpp:559
constexpr struct elc::defs::base::null_ptr_n::null_ptr_t null_ptr
函数调用图:

◆ operator()() [1/2]

template<class T >
T * elc::defs::memory::alloc_n::alloc_t< T >::operator() ( ) const
inlinenoexcept

在文件 all_defs.cpp20899 行定义.

20899{return base_call();}

◆ operator()() [2/2]

template<class T >
T * elc::defs::memory::alloc_n::alloc_t< T >::operator() ( size_t  size) const
inlinenoexcept

在文件 all_defs.cpp20900 行定义.

20900{return base_call(size);}

◆ operator[]()

template<class T >
constexpr alloc_array_t elc::defs::memory::alloc_n::alloc_t< T >::operator[] ( size_t  a) const
inlineconstexprnoexcept

在文件 all_defs.cpp20905 行定义.

20905{return{a};}

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