std::allocator_traits<Alloc>::construct
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <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 要件です。
関連項目
| 確保関数 (関数) | |
(C++17で非推奨)(C++20で削除) |
確保された記憶域にオブジェクトを構築します ( std::allocator<T>のパブリックメンバ関数)
|