Namespaces
Variants

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

From cppreference.net
Utilities library
主模板
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 )

异常

1,2,5) * this 包含意外值,则抛出 std:: bad_expected_access ( std:: as_const ( error ( ) ) )
3,4,6) * this 包含意外值,则抛出 std:: bad_expected_access ( std :: move ( error ( ) ) )

示例

缺陷报告

下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。

缺陷报告 应用于 发布时行为 正确行为
LWG 3940 C++23 重载 (5,6) 未要求 E 可复制/移动构造 要求必须满足

参见

若存在期望值则返回该值,否则返回另一值
(公开成员函数)
访问期望值
(公开成员函数)
返回非期望值
(公开成员函数)
指示对包含非期望值的 expected 进行受检访问时抛出的异常
(类模板)