跳到主要内容

std::allocation_result

定义于内存
自 C++23 起
template< class Pointer, class SizeType = std::size_t >
struct allocation_result {
Pointer ptr;
SizeType count;
};

allocation_result 的特化是从适当的 Allocator 类型(例如 std::allocator::allocate_at_least)和 std::allocator_traits::allocate_at_least 的 allocate_at_least 成员函数返回的。

allocation_result 的每个特化都没有基类或除了 ptr 和 count 之外的声明成员,因此它适用于聚合初始化结构化绑定

模板参数

Pointer - 通常是 std::allocator_traits<Alloc>::pointer,其中 Alloc 是一个 Allocator 类型
SizeType - 通常是 std::allocator_traits<Alloc>::size_type,其中 Alloc 是一个 Allocator 类型

成员对象

公共ptr(C++23)通常用于 allocate_at_least 分配的存储中第一个元素的地址
公共count(C++23)通常用于 allocate_at_least 分配的存储中元素的实际数量

备注

PointerSizeType 默认是指向对象类型的指针和 std::make_unsigned_t<std::ptrdiff_t>(这几乎总是与 std::size_t 相同)。

特性测试宏标准
__cpp_lib_allocate_at_least202302L(C++23)

示例

本节不完整

std::allocation_result

定义于内存
自 C++23 起
template< class Pointer, class SizeType = std::size_t >
struct allocation_result {
Pointer ptr;
SizeType count;
};

allocation_result 的特化是从适当的 Allocator 类型(例如 std::allocator::allocate_at_least)和 std::allocator_traits::allocate_at_least 的 allocate_at_least 成员函数返回的。

allocation_result 的每个特化都没有基类或除了 ptr 和 count 之外的声明成员,因此它适用于聚合初始化结构化绑定

模板参数

Pointer - 通常是 std::allocator_traits<Alloc>::pointer,其中 Alloc 是一个 Allocator 类型
SizeType - 通常是 std::allocator_traits<Alloc>::size_type,其中 Alloc 是一个 Allocator 类型

成员对象

公共ptr(C++23)通常用于 allocate_at_least 分配的存储中第一个元素的地址
公共count(C++23)通常用于 allocate_at_least 分配的存储中元素的实际数量

备注

PointerSizeType 默认是指向对象类型的指针和 std::make_unsigned_t<std::ptrdiff_t>(这几乎总是与 std::size_t 相同)。

特性测试宏标准
__cpp_lib_allocate_at_least202302L(C++23)

示例

本节不完整