名稱空間
變體
操作

std::pmr::polymorphic_allocator<T>::allocate

來自 cppreference.com
 
 
記憶體管理庫
(僅作說明*)
未初始化記憶體演算法
(C++17)
(C++17)
(C++17)
受約束的未初始化
記憶體演算法
C 庫

分配器
記憶體資源
垃圾回收支援
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
未初始化儲存
(直到 C++20*)
(直到 C++20*)
顯式生命週期管理
 
 
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 不一致 已使其保持一致

[編輯] 參閱

從底層資源分配原始對齊記憶體
(公共成員函式) [編輯]
分配適合物件或陣列的原始記憶體
(公共成員函式) [編輯]
分配並構造一個物件
(公共成員函式) [編輯]
[靜態]
使用分配器分配未初始化的儲存
(std::allocator_traits<Alloc> 的公共靜態成員函式) [編輯]
分配記憶體
(std::pmr::memory_resource 的公共成員函式) [編輯]