std::pmr::polymorphic_allocator<T>::allocate_object
来自cppreference.com
< cpp | memory | polymorphic allocator
template<class U > U* allocate_object(std::size_t n =1); | (C++20 起) | |
用底层内存资源分配 n 个 U
类型对象的存储。
若 std::numeric_limits<std::size_t>::max()/ sizeof(U)< n,则抛出 std::bad_array_new_length,否则等价于 returnstatic_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 的公开成员函数) |