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) Выбрасывает std:: bad_expected_access ( std:: as_const ( error ( ) ) ) если * this содержит непредвиденное значение.
3,4,6) Выбрасывает std:: bad_expected_access ( std :: move ( error ( ) ) ) если * this содержит непредвиденное значение.

Пример

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
LWG 3940 C++23 E не требовалось быть copy/move-constructible для перегрузок (5,6) требуется

Смотрите также

возвращает ожидаемое значение, если оно присутствует, иначе другое значение
(публичная функция-член)
предоставляет доступ к ожидаемому значению
(публичная функция-член)
возвращает неожиданное значение
(публичная функция-член)
исключение, указывающее на проверенный доступ к expected , который содержит неожиданное значение
(шаблон класса)