名前空間
変種
操作

std::allocator_traits<Alloc>::construct

From cppreference.com
 
 
メモリ管理ライブラリ
(説明用*)
未初期化メモリのアルゴリズム
(C++17)
(C++17)
(C++17)
制約付き未初期化
メモリアルゴリズム
Cライブラリ

アロケータ
メモリリソース
ガベージコレクションのサポート
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
未初期化ストレージ
(C++20まで*)
(C++20まで*)
明示的な生存期間管理
 
 
ヘッダ <memory> で定義
template< class T, class... Args >
static void construct( Alloc& a, T* p, Args&&... args );
(C++11以降)
(C++20 以降 constexpr)

割り当てられた初期化されていないストレージ p の中に、a.construct(p, std::forward<Args>(args)...) を呼び出すことによって、型Tのオブジェクトを構築します。もし構築が可能であれば。

上記が不可能である場合(例:Allocにメンバー関数construct()がない場合)、以下を呼び出します。

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

(C++20まで)

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

(C++20以降)

目次

[編集] パラメータ

a - 構築に使用するアロケータ
p - T オブジェクトが構築される未初期化ストレージへのポインタ。
args... - a.construct() または 配置 new(C++20まで) std::construct_at()(C++20以降) に渡されるコンストラクタ引数

[編集] 戻り値

(なし)

[編集] ノート

この関数は、標準ライブラリコンテナが要素の挿入、コピー、または移動を行う際に使用されます。

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

[編集] 関連項目

メモリ割り当て関数
(関数) [編集]
(C++20まで)
割り当てられたストレージにオブジェクトを構築する
(std::allocator<T> のパブリックメンバ関数) [編集]
与えられたアドレスにオブジェクトを作成します
(関数テンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)