命名空间
变体
操作

std::pmr::polymorphic_allocator<T>::allocate

来自 cppreference.cn
 
 
内存管理库
(仅作说明*)
未初始化内存算法
(C++17)
(C++17)
(C++17)
受约束的未初始化
内存算法
C 库

分配器
内存资源
垃圾回收支持
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
未初始化存储
(直到 C++20*)
(直到 C++20*)
显式生命周期管理
 
 
T* allocate( std::size_t n );
(C++17 起)

使用底层内存资源为 `T` 类型的 `n` 个对象分配存储。等价于 return static_cast<T*>(resource()->allocate(n * sizeof(T), alignof(T)));

目录

[编辑] 参数

n - 要分配存储的对象数量

[编辑] 返回值

指向已分配存储的指针。

[编辑] 异常

如果 n > std::numeric_limits<std::size_t>::max() / sizeof(T),则抛出 std::bad_array_new_length;也可能抛出对 resource()->allocate 的调用所抛出的任何异常。

[编辑] 缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 发布时的行为 正确的行为
LWG 3038 C++17 allocate 可能分配了错误大小的存储空间 改为抛出 length_error
LWG 3237 C++17 allocate 抛出的异常与 std::allocator::allocate 不一致 已使其保持一致

[编辑] 参阅

从底层资源分配原始对齐内存
(公共成员函数) [编辑]
分配适合对象或数组的原始内存
(公共成员函数) [编辑]
分配并构造一个对象
(公共成员函数) [编辑]
[静态]
使用分配器分配未初始化的存储
(std::allocator_traits<Alloc> 的公共静态成员函数) [编辑]
分配内存
(std::pmr::memory_resource 的公共成员函数) [编辑]