std::allocator_traits<Alloc>::construct
提供: cppreference.com
< cpp | memory | allocator traits
ヘッダ <memory> で定義 | ||
template<class T, class... Args> staticvoid 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> のパブリックメンバ関数) |