std::pmr::polymorphic_allocator<T>::allocate
来自 cppreference.cn
< cpp | memory | polymorphic allocator
T* allocate( std::size_t n ); |
(C++17 起) | |
使用底层内存资源为 `T` 类型的 `n` 个对象分配存储。等价于 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++ 标准。
缺陷报告 | 应用于 | 发布时的行为 | 正确的行为 |
---|---|---|---|
LWG 3038 | C++17 | allocate 可能分配了错误大小的存储空间 |
改为抛出 length_error |
LWG 3237 | C++17 | allocate 抛出的异常与 std::allocator::allocate 不一致 |
已使其保持一致 |
[编辑] 参阅
(C++20) |
从底层资源分配原始对齐内存 (公共成员函数) |
(C++20) |
分配适合对象或数组的原始内存 (公共成员函数) |
(C++20) |
分配并构造一个对象 (公共成员函数) |
[静态] |
使用分配器分配未初始化的存储 ( std::allocator_traits<Alloc> 的公共静态成员函数) |
分配内存 ( std::pmr::memory_resource 的公共成员函数) |