Namespaces
Variants

std::expected<T,E>::emplace

ja.cppreference.net より
 
 
ユーティリティライブラリ
言語サポート
型サポート (基本型、RTTI)
ライブラリ機能テストマクロ (C++20)
プログラムユーティリティ
可変引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)(C++20)(C++20)    
(C++20)
swap と 型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
共通ボキャブラリ型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
プライマリテンプレート
template< class... Args >
constexpr T& emplace( Args&&... args ) noexcept;
(1) (C++23 以上)
template< class U, class... Args >
constexpr T& emplace( std::initializer_list<U> il, Args&&... args ) noexcept;
(2) (C++23 以上)
void 部分特殊化
constexpr void emplace() noexcept;
(3) (C++23 以上)

期待値をその場で構築します。この呼び出しの後、has_value()は true を返します。

1) 現在保持している値を破棄し、その後直接初期化により *this に保持される期待値を std::forward<Args>(args)... で構築します。
このオーバーロードは、std::is_nothrow_constructible_v<T, Args...> が true である場合にのみオーバーロード解決に参加します。
2) 現在保持している値を破棄し、その後 *this に保持される期待値を il と std::forward<Args>(args)... で直接初期化します。
このオーバーロードは、std::is_nothrow_constructible_v<T, std::initializer_list<U>&, Args...> が true である場合にのみオーバーロード解決に参加します。
3) *this がエラー値を保持している場合、その値を破棄します。

パラメータ

args - コンストラクタに渡す引数
il - コンストラクタに渡す初期化子リスト

戻り値

2) * std:: construct_at ( std:: addressof ( val ) , il, std:: forward < Args > ( args ) ... )

注記

T の構築が例外を投げる可能性がある場合、 operator= を代わりに使用できます。

例

関連項目

内容を代入
(公開メンバ関数)