std::expected<T,E>::value
ja.cppreference.net より
| プライマリテンプレート |
||
constexpr T& value() &;
|
(1) | (C++23 以降) |
constexpr const T& value() const&;
|
(2) | (C++23 以降) |
constexpr T&& value() &&;
|
(3) | (C++23 以降) |
constexpr const T&& value() const&&;
|
(4) | (C++23 以降) |
void 部分特殊化 |
||
constexpr void value() const&;
|
(5) | (C++23 以降) |
constexpr void value() &&;
|
(6) | (C++23 以降) |
もし *this が期待値を保持しているなら、保持している値への参照を返す。 void 部分特殊化に対しては何も返さない。
そうでなければ、std::bad_expected_access<std::decay_t<E>> のコピーを保持する error() 型の例外を送出する。
1,2)
std::is_copy_constructible_v<E> が false の場合、プログラムは ill-formed となる。3,4)
std::is_copy_constructible_v<E> または std::is_constructible_v<E, decltype(std::move(error()))> が false の場合、プログラムは ill-formed となる。5)
std::is_copy_constructible_v<E> が false の場合、プログラムは ill-formed となる。6)
std::is_move_constructible_v<E> が false の場合、プログラムは ill-formed となる。戻り値
1,2)
val
3,4)
std
::
move
(
val
)
例外
1,2,5)
std::
bad_expected_access
(
std::
as_const
(
error
(
)
)
)
をスローする
3,4,6)
std::
bad_expected_access
(
std
::
move
(
error
(
)
)
)
をスローする
例
|
このセクションは不完全です
理由: 例がありません |
欠陥報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 3940 | C++23 |
E
はオーバーロード
(5,6)
に対してcopy/move-constructibleであることが要求されていなかった
|
要求される |
関連項目
|
期待される値が存在する場合はそれを返し、そうでない場合は別の値を返す
(公開メンバ関数) |
|
|
期待される値にアクセスする
(公開メンバ関数) |
|
|
予期しない値を返す
(公開メンバ関数) |
|
|
(C++23)
|
予期しない値が含まれる
expected
へのチェック付きアクセスを示す例外
(クラステンプレート) |