close
Пространства имён
Варианты
Действия

std::bad_expected_access

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
 
<tbody> </tbody>
Определено в заголовочном файле <expected>
template< class E > class bad_expected_access : public std::bad_expected_access<void>
(1) (начиная с C++23)
template<> class bad_expected_access<void> : public std::exception
(2) (начиная с C++23)
1) Определяет тип объекта, который бросается при исключении std::expected::value при доступе к ожидаемому объекту, содержащему неожидаемое значение. bad_expected_access<E> хранит копию непредвиденного значения.
2) bad_expected_access<void> является базовым классом для всех остальных специализаций bad_expected_access.

Элементы основного шаблона

создаёт объект bad_expected_access
(public функция-элемент)
error
возвращает сохранённое значение
(public функция-элемент)
what
возвращает пояснительную строку
(public функция-элемент)

std::bad_expected_access::bad_expected_access

<tbody> </tbody>
explicit bad_expected_access( E e );

Создаёт новый объект bad_expected_access<E>. Инициализирует сохранённое значение с помощью std::move(e).

std::bad_expected_access::error

<tbody> </tbody>
const E& error() const& noexcept; E& error() & noexcept; const E&& error() const&& noexcept; E&& error() && noexcept;

Возвращает ссылку на сохранённое значение.

std::bad_expected_access::what

<tbody> </tbody>
virtual const char* what() const noexcept override;

Возвращает пояснительную строку.

Параметры

(нет)

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

Указатель на завершающуюся нулём строку с пояснительной информацией. Строка подходит для преобразования и отображения в виде std::wstring. Указатель гарантированно действителен, по крайней мере, до тех пор, пока объект исключения, из которого он получен, не будет уничтожен или пока не будет вызвана неконстантная функция-элемент (например, оператор присваивания копированием) для объекта исключения.

Примечание

Реализации могут, но не обязаны переопределять what().

Элементы специализации bad_expected_access<void>

(конструктор)
создаёт объект bad_expected_access<void>
(protected функция-элемент)
(destructor)
уничтожает объект bad_expected_access<void>
(protected функция-элемент)
operator=
заменяет объект bad_expected_access<void>
(protected функция-элемент)
what
возвращает пояснительную строку
(public функция-элемент)

Специальные функции-элементы bad_expected_access<void> защищены. Их могут вызывать только производные классы.

Пример