命名空间
变体
操作

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

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



 
 
T* allocate( std::size_t n );
(自 C++17 起)

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

内容

[编辑] 参数

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

[编辑] 返回值

指向已分配存储空间的指针。

[编辑] 异常

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

[编辑] 缺陷报告

以下行为更改缺陷报告已追溯应用于先前发布的 C++ 标准。

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

[编辑] 参见

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