std::allocation_result
定义于 | 内存 |
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 分配的存储中元素的实际数量 |
备注
Pointer
和 SizeType
默认是指向对象类型的指针和 std::make_unsigned_t<std::ptrdiff_t>(这几乎总是与 std::size_t 相同)。
特性测试宏 | 值 | 标准 |
---|---|---|
__cpp_lib_allocate_at_least | 202302L | (C++23) |