std::pmr::polymorphic_allocator<T>::allocate
來自 cppreference.com
< 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 的公共成員函式) |