Namespaces
Variants

std:: bad_expected_access

From cppreference.net
Utilities library
Определено в заголовочном файле <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 для объекта expected, содержащего неожиданное значение. bad_expected_access<E> сохраняет копию неожиданного значения.
2) bad_expected_access < void > является базовым классом для всех остальных bad_expected_access специализаций.
Все функции-члены std::bad_expected_access являются constexpr : возможно создавать и использовать объекты std::bad_expected_access при вычислении константного выражения.

Однако, объекты std::bad_expected_access обычно не могут быть constexpr , поскольку любая динамически выделенная память должна быть освобождена в том же вычислении константного выражения.

(since C++26)

Содержание

Члены основного шаблона

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

std::bad_expected_access:: bad_expected_access

explicit bad_expected_access ( E e ) ;
(начиная с C++23)
(constexpr начиная с C++26)

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

std::bad_expected_access:: error

const E & error ( ) const & noexcept ;
(1) (since C++23)
(constexpr since C++26)
E & error ( ) & noexcept ;
(2) (since C++23)
(constexpr since C++26)
const E && error ( ) const && noexcept ;
(3) (since C++23)
(constexpr since C++26)
E && error ( ) && noexcept ;
(4) (since C++23)
(constexpr since C++26)

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

std::bad_expected_access:: what

const char * what ( ) const noexcept override ;
(начиная с C++23)
(constexpr начиная с C++26)

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

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

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

Возвращаемая строка кодируется с использованием обычной кодировки литералов во время константной оценки.

(начиная с C++26)

Примечания

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

Унаследовано от std:: bad_expected_access < void >

Члены специализации bad_expected_access < void >

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

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

Унаследовано от std:: exception

Функции-члены

уничтожает объект исключения
(виртуальная публичная функция-член std::exception )
[virtual]
возвращает поясняющую строку
(виртуальная публичная функция-член std::exception )

Примечания

Макрос тестирования возможностей Значение Стандарт Функция
__cpp_lib_constexpr_exceptions 202502L (C++26) constexpr std::bad_expected_access

Пример

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

исключение, указывающее на проверенный доступ к optional, который не содержит значения
(класс)
исключение, выбрасываемое при недопустимых обращениях к значению variant
(класс)