std::pmr::polymorphic_allocator<T>::allocate_C++中文网

C++ 参考手册

用底层的 memory_resource 分配 n 个 T 类型对象的存储。等价于 return static_cast<T*>(resource()->allocate(n * sizeof(T), alignof(T))); 。

参数

n - 要分配存储的对象数

返回值

指向被分配存储的指针。

异常

若 n > std::numeric_limits<std::size_t>::max() / sizeof(T) 则抛出 std::bad_array_new_length ;亦可抛出调用 resource()->allocate 所抛的任何异常。

缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

DR 应用于 出版时的行为 正确行为
LWG 3038 C++17 allocate 可能分配大小错误的存储 替而抛出 length_error
LWG 3237 C++17 allocate 所抛的异常与 std::allocator::allocate 不一致 使之一致

参阅