NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
内存分配器

内存分配器的实现 更多...

class  standard_allocator< T >
 标准分配器类 更多...

类型定义

template<typename T>
using allocator = standard_allocator<T>
 标准分配器别名

函数

template<size_t Align>
NEFORCE_ALLOC_OPTIMIZE NEFORCE_CONSTEXPR20 void * allocate (const inner::alloc_size_t bytes)
 内存分配函数
template<size_t Align>
NEFORCE_CONSTEXPR20 void deallocate (void *ptr, inner::alloc_size_t bytes) noexcept
 内存释放函数
template<typename T, typename U>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator== (const standard_allocator< T > &, const standard_allocator< U > &) noexcept
 比较两个分配器是否相等
template<typename T, typename U>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator!= (const standard_allocator< T > &, const standard_allocator< U > &) noexcept
 比较两个分配器是否不等

详细描述

内存分配器的实现

类型定义说明

◆ allocator

template<typename T>
using allocator = standard_allocator<T>

标准分配器别名

模板参数
T元素类型

standard_allocator 提供的类型别名,用于统一接口。

在文件 standard_allocator.hpp448 行定义.

函数说明

◆ allocate()

template<size_t Align>
NEFORCE_ALLOC_OPTIMIZE NEFORCE_CONSTEXPR20 void * allocate ( const inner::alloc_size_t bytes)

内存分配函数

模板参数
Align对齐要求
参数
bytes要分配的字节数
返回
分配的内存指针,如果bytes为0则返回nullptr

内存分配的统一入口。

在文件 standard_allocator.hpp202 行定义.

引用了 is_constant_evaluated().

被这些函数引用 standard_allocator< U >::allocate().

◆ deallocate()

template<size_t Align>
NEFORCE_CONSTEXPR20 void deallocate ( void * ptr,
inner::alloc_size_t bytes )
noexcept

内存释放函数

模板参数
Align对齐要求
参数
ptr要释放的内存指针
bytes要释放的字节数

内存释放的统一入口。

在文件 standard_allocator.hpp306 行定义.

引用了 is_constant_evaluated().

被这些函数引用 vector< byte_t >::assign(), standard_allocator< U >::deallocate(), vector< byte_t >::emplace(), vector< byte_t >::insert(), vector< byte_t >::operator=(), vector< byte_t >::reserve(), vector< byte_t >::shrink_to_fit() , 以及 vector< byte_t >::~vector().

◆ operator!=()

template<typename T, typename U>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator!= ( const standard_allocator< T > & ,
const standard_allocator< U > &  )
noexcept

比较两个分配器是否不等

模板参数
T第一个分配器元素类型
U第二个分配器元素类型
返回
总是返回 false

在文件 standard_allocator.hpp434 行定义.

◆ operator==()

template<typename T, typename U>
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 bool operator== ( const standard_allocator< T > & ,
const standard_allocator< U > &  )
noexcept

比较两个分配器是否相等

模板参数
T第一个分配器元素类型
U第二个分配器元素类型
返回
总是返回 true

在文件 standard_allocator.hpp422 行定义.