std::allocator<T>::construct
From cppreference.com
| ヘッダ <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で削除) |
割り当てられた未初期化ストレージに、グローバルな配置 `new` を使用して、`p` が指す場所に型Tのオブジェクトを構築します。
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] |
割り当てられたストレージにオブジェクトを構築する (関数テンプレート) |
| (C++20) |
与えられたアドレスにオブジェクトを作成します (関数テンプレート) |
| メモリ割り当て関数 (関数) |