名前空間
変種
操作

std::allocator_traits<Alloc>::construct

提供: cppreference.com
 
 
動的メモリ管理
スマートポインタ
(C++11)
(C++11)
(C++11)
(C++17未満)
(C++11)
アロケータ
メモリリソース
未初期化記憶域
(C++17)
ガベージコレクションサポート
その他
(C++20)
(C++11)
(C++11)
C のライブラリ
低水準のメモリ管理
 
 
ヘッダ <memory> で定義
template< class T, class... Args >
static void construct( Alloc& a, T* p, Args&&... args );
(C++11以上)

可能であれば、以下を呼ぶことによって、 p の指す確保済みの未初期化記憶域に T 型のオブジェクトを構築します。

a.construct(p, std::forward<Args>(args)...)

上記が可能でなければ (a がメンバ関数 construct() を持たないなど)、以下のように配置 new を呼びます。

::new (static_cast<void*>(p)) T(std::forward<Args>(args)...)

目次

[編集] 引数

a - 構築のために使用するアロケータ
args... - a.construct() または配置 new に渡すコンストラクタ引数

[編集] 戻り値

(なし)

[編集] ノート

この関数は要素を挿入、コピー、ムーブするときに標準ライブラリのコンテナによって使用されます。

この関数は配置 new への自動フォールバックを提供するため、 C++11 以降、メンバ関数 construct() はオプショナルな Allocator 要件です。

[編集] 関連項目

確保関数
(関数) [edit]
(C++17で非推奨)(C++20で削除)
確保された記憶域にオブジェクトを構築します
(std::allocator<T>のパブリックメンバ関数) [edit]