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

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

struct  realloc_array_t
 

Public 类型

typedef realloc_t base_t
 

Public 成员函数

template<class T >
void operator() (T *&ptr, size_t nsize) const noexcept
 
constexpr realloc_array_t operator[] (size_t a) const noexcept
 

静态 Public 成员函数

template<class T >
static void base_call (T *&ptr, size_t nsize) noexcept
 

详细描述

用于对特定类型进行realloc

警告
这个类不会对类实例进行移动函数调用,也不会创造或结束生命周期,如需要进行new like操作,请使用 get_resize_t

在文件 all_defs.cpp20929 行定义.

成员类型定义说明

◆ base_t

成员函数说明

◆ base_call()

template<class T >
static void elc::defs::memory::alloc_n::realloc_t::base_call ( T *&  ptr,
size_t  nsize 
)
inlinestaticnoexcept

在文件 all_defs.cpp20932 行定义.

20932 {
20933 const APIs::alloc::source_location_guard slg{1};
20934 if constexpr(type_info<T>.has_attribute(never_in_array))
20935 template_error("You cannot perform array operations on never_in_array type.");
20936 //template_warning("For never_in_array type,realloc will free ptr when new_size=0 else do nothing.");
20937 if(nsize){//null_ptr不一定等价于nullptr,请勿删除本行
20938 if constexpr(type_info<T>.not_has_attribute(never_in_array))
20939 if(ptr!=null_ptr){//null_ptr不一定等价于nullptr,请勿删除本行
20940 void*tmp;
20942 ptr=reinterpret_cast<T*>(tmp);
20943 }else
20945 }else{
20946 free(ptr);
20947 ptr=null_ptr;
20948 }
20949 }
#define template_error(reason)
Definition all_defs.cpp:559
constexpr struct elc::defs::base::null_ptr_n::null_ptr_t null_ptr
auto & assign(T &&a, U &&b) noexcept(noexcept((a=b)))
Definition all_defs.cpp:975
constexpr T down_cast(U a) noexcept
向下转型至
comn_ptr_t< node_like > ptr
void * realloc_method(T *ptr, size_t new_size) noexcept
constexpr struct elc::defs::memory::alloc_n::free_t free
void gc_for_alloc() noexcept
当alloc失败时调用此函数
函数调用图:

◆ operator()()

template<class T >
void elc::defs::memory::alloc_n::realloc_t::operator() ( T *&  ptr,
size_t  nsize 
) const
inlinenoexcept

在文件 all_defs.cpp20951 行定义.

20951 {
20952 base_call(ptr,nsize);
20953 }
static void base_call(T *&ptr, size_t nsize) noexcept

◆ operator[]()

constexpr realloc_array_t elc::defs::memory::alloc_n::realloc_t::operator[] ( size_t  a) const
inlineconstexprnoexcept

在文件 all_defs.cpp20959 行定义.

20959{return{a};}

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