名前空間
変種
操作

std::pmr::polymorphic_allocator<T>::new_object

提供: cppreference.com
 
 
動的メモリ管理
スマートポインタ
(C++11)
(C++11)
(C++11)
(C++17未満)
(C++11)
アロケータ
メモリリソース
未初期化記憶域
ガベージコレクションサポート
その他
(C++20)
(C++11)
(C++11)
C のライブラリ
低水準のメモリ管理
 
 
template< class U, class CtorArgs... >
[[nodiscard]] U* new_object( CtorArgs&&... ctor_args );
(C++20以上)

U 型のオブジェクトを確保および構築します。

以下と同等です。

U* p = allocate_object<U>();
try {
  construct(p, std::forward<CtorArgs>(ctor_args)...);
} catch (...) {
  deallocate_object(p);
  throw;
}
return p;

目次

[編集] 引数

ctor_args - U のコンストラクタに転送する引数

[編集] 戻り値

確保および構築したオブジェクトを指すポインタ。

[編集] ノート

この関数は完全特殊化されたアロケータ std::polymorphic_allocator<> で使用するために導入されましたが、 std::polymorphic_allocator<T>std::polymorphic_allocator<U> に rebind する必要や allocateconstruct および deallocate を個別に呼ぶ必要を回避するためのショートカットとして任意の特殊化でも便利かもしれません。

U は推定されないため、この関数を呼ぶときはテンプレート引数として提供されなければなりません。

[編集] 例外

allocate_object または U のコンストラクタへの呼び出しによって投げられるあらゆる例外が投げられる可能性があります。

[編集] 関連項目

ベースとなるリソースからアラインされた生メモリを確保します
(パブリックメンバ関数) [edit]
オブジェクトまたは配列に適した生メモリを確保します
(パブリックメンバ関数) [edit]
メモリを確保します
(パブリックメンバ関数) [edit]
[静的]
アロケータを使用して未初期化記憶域を確保します
(std::allocator_traits<Alloc>のパブリック静的メンバ関数) [edit]
メモリを確保します
(std::pmr::memory_resourceのパブリックメンバ関数) [edit]