On this page
std::expected<T,E>::value_or
|
(1) | (since C++23) |
|
(2) | (since C++23) |
Returns the contained value if *this contains an expected value, otherwise returns default_value.
1) Returns
bool(*this) ? **this : static_cast<T>(std::forward<U>(default_value))
2) Returns
bool(*this) ? std::move(**this) : static_cast<T>(std::forward<U>(default_value))
Parameters
| default_value | - | the value to use in case *this does not contain an expected value |
| Type requirements | ||
-T must meet the requirements of CopyConstructible in order to use overload (1). |
||
-T must meet the requirements of MoveConstructible in order to use overload (2). |
||
-U&& must be convertible to T |
||
Return value
The currently contained value if *this contains an expected value, or default_value otherwise.
Exceptions
Any exception thrown by the selected constructor of the return value T.
Notes
If T is (possibly cv-qualified) void, this member is not declared.
Example
See also
| returns the expected value (public member function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/expected/value_or