命名空间
变体
操作

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

来自 cppreference.cn
< 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 进行检查访问时抛出的异常
(类模板) [编辑]