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

来自cppreference.com
 
 
动态内存管理
智能指针
(C++11)
(C++11)
(C++11)
(C++17 前)
(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++11)(C++23 前)
杂项
(C++20)
(C++11)
(C++11)
C 库
低层内存管理
 
 
template< class U >
[[nodiscard]] U* allocate_object( std::size_t n = 1 );
(C++20 起)

用底层内存资源分配 nU 类型对象的存储。

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::polymorphic_allocator<> ,但它可能在任何特化中都有用,作为避免从 std::polymorphic_allocator<T> 重绑定到 std::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 的公开成员函数)