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

来自cppreference.com
 
 
内存管理库
(仅用于阐述*)
分配器
未初始化内存算法
受约束的未初始化内存算法
内存资源
未初始化存储 (C++20 前)
(C++17 弃用)
(C++17 弃用)

垃圾收集器支持 (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 前)
 
 
T* allocate( std::size_t n );
(C++17 起)

用底层的内存资源分配 nT 类型对象的存储。等价于 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 的公开成员函数) [编辑]