std::pmr::polymorphic_allocator<T>::new_object
來自 cppreference.com
< cpp | memory | polymorphic allocator
template< class U, class... CtorArgs > U* new_object( CtorArgs&&... ctor_args ); |
(C++20 起) | |
分配並構造 U
型別的物件。
給定 alloc
是一個 std::pmr::polymorphic_allocator<T>
U* p = alloc.new_object<U>(std::forward<CtorArgs>(ctor_args)...);
等價於
U* p = alloc.allocate_object<U>(); try { alloc.construct(p, std::forward<CtorArgs>(ctor_args)...); } catch (...) { alloc.deallocate_object(p); throw; }
目錄 |
[編輯] 引數
ctor_args | - | 要轉發給 U 的建構函式的引數 |
[編輯] 返回值
一個指向已分配和構造的物件的指標。
[編輯] 注意
此函式是為與完全特化的分配器 std::pmr::polymorphic_allocator<> 一起使用而引入的,但它在任何特化中都可能有用,可作為避免必須從 std::pmr::polymorphic_allocator<T> 重新繫結到 std::pmr::polymorphic_allocator<U>,以及不得不單獨呼叫 allocate、construct 和 deallocate 的快捷方式。
由於 U
不會被推導,因此在呼叫此函式時必須將其作為模板引數提供。
[編輯] 異常
可能丟擲由呼叫 allocate_object 或 U
的建構函式所丟擲的任何異常。
[編輯] 參見
(C++20) |
從底層資源分配原始對齊記憶體 (公開成員函式) |
(C++20) |
分配適合物件或陣列的原始記憶體 (公開成員函式) |
分配記憶體 (公開成員函式) | |
[靜態] |
使用分配器分配未初始化的儲存 ( std::allocator_traits<Alloc> 的公開靜態成員函式) |
分配記憶體 ( std::pmr::memory_resource 的公開成員函式) |