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 起) | |
使用底層記憶體資源為 U
型別的 n 個物件分配儲存。
若 std::numeric_limits<std::size_t>::max() / sizeof(U) < n,則丟擲 std::bad_array_new_length,否則等價於 return static_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 的公開成員函式) |