std::expected<T,E>::value
来自 zh.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,则程序非良构。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,则程序非良构。返回值
1,2)
val
3,4)
std
::
move
(
val
)
异常
示例
|
本节内容不完整
原因:缺少示例 |
缺陷报告
下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
| 缺陷报告 | 应用于 | 发布时行为 | 正确行为 |
|---|---|---|---|
| LWG 3940 | C++23 |
重载
(5,6)
未要求
E
可复制/移动构造
|
要求必须满足 |
参见
|
若存在期望值则返回该值,否则返回另一值
(公开成员函数) |
|
|
访问期望值
(公开成员函数) |
|
|
返回非期望值
(公开成员函数) |
|
|
(C++23)
|
指示对包含非期望值的
expected
进行受检访问时抛出的异常
(类模板) |