std::expected<T,E>:: value_or
From cppreference.net
|
主模板
|
||
|
template
<
class
U
=
std::
remove_cv_t
<
T
>
>
constexpr T value_or ( U && default_value ) const & ; |
(1) | (自 C++23 起) |
|
template
<
class
U
=
std::
remove_cv_t
<
T
>
>
constexpr T value_or ( U && default_value ) && ; |
(2) | (自 C++23 起) |
若期望值存在则返回该值,否则返回 default_value 。
void 部分特化版本不包含这些成员函数。
目录 |
参数
| default_value | - | 当 * this 不包含期望值时使用的值 |
返回值
1)
has_value
(
)
?
**
this
:
static_cast
<
T
>
(
std::
forward
<
U
>
(
default_value
)
)
2)
has_value
(
)
?
std
::
move
(
**
this
)
:
static_cast
<
T
>
(
std::
forward
<
U
>
(
default_value
)
)
示例
|
本节内容不完整
原因:缺少示例 |
缺陷报告
下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
| 缺陷报告 | 应用于 | 发布时行为 | 正确行为 |
|---|---|---|---|
| LWG 3886 | C++23 |
U
does not have a default template argument
|
specified |
参见
|
返回期望值
(公开成员函数) |
|
|
若存在意外值则返回该值,否则返回其他值
(公开成员函数) |