Spec-Zone.ru › C++

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

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)

Возвращает содержащееся значение, если *this содержит ожидаемое значение, в противном случае возвращает default_value.

1) Возвращает bool(*this) ? **this : static_cast<T>(std::forward<U>(default_value))
2) Возвращает bool(*this) ? std::move(**this) : static_cast<T>(std::forward<U>(default_value))

Параметры

default_value - значение, которое будет использовано в случае, если *this не содержит ожидаемого значения
Требования к типу
- T должно удовлетворять требованиям CopyConstructible, чтобы использовать перегрузку (1).
- T должно удовлетворять требованиям MoveConstructible, чтобы использовать перегрузку (2).
- U&& должно быть приводимо к типу T

Возвращаемое значение

Текущее содержащееся значение, если *this содержит ожидаемое значение, или default_value в противном случае.

Исключения

Любое исключение, сгенерированное выбранным конструктором возвращаемого значения T.

Примечания

Если T является (возможно, с квалификатором cv) void, этот член не объявлен.

Пример

См. также

value
возвращает ожидаемое значение
(публичный член-функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/expected/value_or

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API