std::expected<T,E>::value_or
From cppreference.com
template< class U > constexpr T value_or( U&& default_value ) const&; |
(1) | (since C++23) |
template< class U > constexpr T value_or( U&& default_value ) &&; |
(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
This section is incomplete Reason: no example |
See also
(C++23) |
returns the expected value (public member function) |