命名空间
变体
操作

std::pmr::polymorphic_allocator<T>::allocate_object

来自 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*)
显式生命周期管理
 
 
template< class U >
U* allocate_object( std::size_t n = 1 );
(C++20 起)

使用底层内存资源为 U 类型的 n 个对象分配存储。

std::numeric_limits<std::size_t>::max() / sizeof(U) < n,则抛出 std::bad_array_new_length,否则等价于 return static_cast<U*>(allocate_bytes(n * sizeof(U), alignof(U)));

目录

[编辑] 参数

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

[编辑] 返回值

指向已分配存储的指针。

[编辑] 注意

此函数被引入以用于完全特化的分配器 std::pmr::polymorphic_allocator<>,但它在任何特化中都可能有用,作为避免从 std::pmr::polymorphic_allocator<T> 重绑定到 std::pmr::polymorphic_allocator<U> 的快捷方式。

因为 U 不会被推导,所以在调用此函数时必须将其作为模板实参提供。

[编辑] 异常

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

[编辑] 参阅

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