命名空间
变体
操作

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

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



 
 
template< class U >
U* allocate_object( std::size_t n = 1 );
(since C++20)

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

如果 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 的公共成员函数) [编辑]