std::expected<T,E>::emplace
ja.cppreference.net より
| プライマリテンプレート |
||
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 を返します。
このオーバーロードは、
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 | - | コンストラクタに渡す初期化子リスト |
戻り値
1)
*
std::
construct_at
(
std::
addressof
(
val
)
,
std::
forward
<
Args
>
(
args
)
...
)
2)
*
std::
construct_at
(
std::
addressof
(
val
)
, il,
std::
forward
<
Args
>
(
args
)
...
)
注記
T
の構築が例外を投げる可能性がある場合、
operator=
を代わりに使用できます。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
内容を代入
(公開メンバ関数) |