std::expected<T,E>::value
來自 cppreference.com
| 主模板 |
||
| 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() 的副本。
3,4) 如果 std::is_copy_constructible_v<E> 或 std::is_constructible_v<E, decltype(std::move(error()))> 為 false,則程式格式不正確。
目錄 |
[edit] 返回值
1,2)
val3,4) std::move(
val)[edit] 異常
[edit] 示例
| 本節不完整 原因:無示例 |
[edit] 缺陷報告
下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。
| 缺陷報告 | 應用於 | 釋出時的行為 | 正確的行為 |
|---|---|---|---|
| LWG 3940 | C++23 | 對於過載 (5,6),E 不再要求是可複製/可移動構造的。 |
需要 |
[edit] 參閱
| 如果存在,返回預期值;否則返回另一個值 (公共成員函式) | |
| 訪問預期值 (公共成員函式) | |
| 返回非預期值 (公共成員函式) | |
| (C++23) |
表示對包含非預期值的 expected 進行檢查訪問時丟擲的異常(類模板) |