Namespaces
Variants

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

С ru.cppreference.net
 
 
Библиотека утилит
Поддержка языка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования возможностей библиотеки (C++20)
Утилиты программы
Функции с переменным числом аргументов
Поддержка корутин (C++20)
Поддержка контрактов (C++26)
Трёхстороннее сравнение
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Общие утилиты
Реляционные операторы (устарело в C++20)
 
 
Основной шаблон
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 , который содержит неожиданное значение
(шаблон класса)