名稱空間
變體
操作

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

來自 cppreference.com
< cpp‎ | 工具庫‎ | expected
 
 
 
 
主模板
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,則程式格式不正確。
3,4) 如果 std::is_copy_constructible_v<E>std::is_constructible_v<E, decltype(std::move(error()))>false,則程式格式不正確。
5) 如果 std::is_copy_constructible_v<E>false,則程式格式不正確。
6) 如果 std::is_move_constructible_v<E>false,則程式格式不正確。

目錄

[edit] 返回值

1,2) val
3,4) std::move(val)

[edit] 異常

1,2,5) 如果 *this 包含意外值,則丟擲 std::bad_expected_access(std::as_const(error()))
3,4,6) 如果 *this 包含意外值,則丟擲 std::bad_expected_access(std::move(error()))

[edit] 示例

[edit] 缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
LWG 3940 C++23 對於過載 (5,6)E 不再要求是可複製/可移動構造的。 需要

[edit] 參閱

如果存在,返回預期值;否則返回另一個值
(公共成員函式) [編輯]
訪問預期值
(公共成員函式) [編輯]
返回非預期值
(公共成員函式) [編輯]
表示對包含非預期值的 expected 進行檢查訪問時丟擲的異常
(類模板) [編輯]