Namespaces
Variants

std::allocator<T>::construct

ja.cppreference.net より
 
 
メモリ管理ライブラリ
アロケータ
メモリリソース
未初期化ストレージ (C++20 まで*)
ガベージコレクタサポート (C++23 まで)
 
 
ヘッダ <memory>
void construct( pointer p, const_reference val );
(1) (C++11 まで)
template< class U, class... Args >
void construct( U* p, Args&&... args );
(2) (C++11 以降)
(C++17 で非推奨)
(C++20 で削除)

型 T のオブジェクトを、グローバル配置 new を使用して、p が指す割り当て済み未初期化ストレージ内に構築します。

1) ::new((void*)p) T(val) を呼び出します。
2) ::new((void*)p) U(std::forward<Args>(args)...) を呼び出します。

パラメータ

p - 割り当てられた未初期化ストレージへのポインタ
val - コピーコンストラクタの引数として使用する値
args... - 使用するコンストラクタ引数

欠陥報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 402 C++98 T :: operator new が存在する場合、プログラムは不適格となる可能性がある グローバルな置換newを使用する

関連項目

[static]
確保されたストレージ内でオブジェクトを構築する
(関数テンプレート)
指定されたアドレスにオブジェクトを作成する
(関数テンプレート)
確保関数
(関数)