命名空间
变体
操作

std::allocation_result

来自 cppreference.com
< cpp‎ | memory
 
 
实用程序库
语言支持
类型支持 (基本类型,RTTI)
库功能测试宏 (C++20)
动态内存管理
程序实用程序
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三元比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用实用程序
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

 
动态内存管理
未初始化内存算法
受限未初始化内存算法
分配器
allocation_result
(C++23)
垃圾回收支持
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)



 
在头文件 <memory> 中定义
template< class Pointer, class SizeType = std::size_t >
struct allocation_result;
(自 C++23 起)

allocation_result 的特化是通过相应 Allocator 类型的 allocate_at_least 成员函数(例如 std::allocator::allocate_at_least)和 std::allocator_traits::allocate_at_least 返回的。

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

内容

[编辑] 模板参数

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

[编辑] 数据成员

成员名称 定义
ptr
类型为 Pointer 的指针,通常用于 allocate_at_least 分配的存储中第一个元素的地址
(公共成员对象)
count
类型为 SizeType 的值,通常用于 allocate_at_least 分配的存储中的实际元素数量
(公共成员对象)

[编辑] 注释

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

功能测试 Std 功能
__cpp_lib_allocate_at_least 202302L (C++23) 分配器接口中的大小反馈

[编辑] 示例

[编辑] 另请参阅

分配至少与请求大小一样大的未初始化存储空间
(std::allocator<T> 的公共成员函数) [编辑]
[静态] (C++23)
通过分配器分配至少与请求大小一样大的存储空间
(std::allocator_traits<Alloc> 的公共静态成员函数) [编辑]