std::pmr::polymorphic_allocator<T>::allocate_object
来自 cppreference.cn
< cpp | memory | polymorphic allocator
template< class U > U* allocate_object( std::size_t n = 1 ); |
(since 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 的调用所抛出的任何异常。
[编辑] 参见
(C++20) |
从底层资源分配原始对齐内存 (公共成员函数) |
(C++20) |
分配并构造对象 (公共成员函数) |
分配内存 (公共成员函数) | |
[静态] |
使用分配器分配未初始化的存储 ( std::allocator_traits<Alloc> 的公共静态成员函数) |
分配内存 ( std::pmr::memory_resource 的公共成员函数) |