Namespaces
Variants

std:: bad_expected_access

From cppreference.net
Utilities library
Definido en el encabezado <expected>
template < class E >
class bad_expected_access : public std :: bad_expected_access < void >
(1) (desde C++23)
template <>
class bad_expected_access < void > : public std:: exception
(2) (desde C++23)
1) Define un tipo de objeto que será lanzado por std::expected::value al acceder a un objeto expected que contiene un valor unexpected. bad_expected_access<E> almacena una copia del valor unexpected.
2) bad_expected_access < void > es la clase base de todas las demás especializaciones de bad_expected_access .
Todas las funciones miembro de std::bad_expected_access son constexpr : es posible crear y utilizar objetos std::bad_expected_access en la evaluación de una expresión constante.

Sin embargo, los objetos std::bad_expected_access generalmente no pueden ser constexpr , porque cualquier almacenamiento asignado dinámicamente debe liberarse en la misma evaluación de la expresión constante.

(since C++26)

Contenidos

Miembros de la plantilla principal

(constructor)
construye un objeto bad_expected_access
(función miembro pública)
error
devuelve el valor almacenado
(función miembro pública)
what
devuelve la cadena explicativa
(función miembro pública)

std::bad_expected_access:: bad_expected_access

explicit bad_expected_access ( E e ) ;
(desde C++23)
(constexpr desde C++26)

Construye un nuevo objeto bad_expected_access<E> . Inicializa el valor almacenado con std::move(e) .

std::bad_expected_access:: error

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

Devuelve una referencia al valor almacenado.

std::bad_expected_access:: what

const char * what ( ) const noexcept override ;
(desde C++23)
(constexpr desde C++26)

Devuelve la cadena explicativa.

Valor de retorno

Puntero a una cadena terminada en nulo con información explicativa. La cadena es adecuada para conversión y visualización como std::wstring . Se garantiza que el puntero será válido al menos hasta que se destruya el objeto de excepción del cual se obtiene, o hasta que se llame a una función miembro no constante (por ejemplo, el operador de asignación de copia) en el objeto de excepción.

La cadena devuelta está codificada con la codificación literal ordinaria durante la evaluación constante.

(desde C++26)

Notas

Se permite a las implementaciones, pero no se requiere, sobrescribir what() .

Heredado de std:: bad_expected_access < void >

Miembros de la especialización bad_expected_access < void >

(constructor)
construye un objeto bad_expected_access < void >
(función miembro protegida)
(destructor)
destruye el objeto bad_expected_access < void >
(función miembro protegida)
operator=
reemplaza el objeto bad_expected_access < void >
(función miembro protegida)
what
devuelve la cadena explicativa
(función miembro pública)

Las funciones miembro especiales de bad_expected_access < void > están protegidas. Solo pueden ser llamadas por clases derivadas.

Heredado de std:: exception

Funciones miembro

[virtual]
destruye el objeto de excepción
(función miembro pública virtual de std::exception )
[virtual]
devuelve una cadena explicativa
(función miembro pública virtual de std::exception )

Notas

Macro de prueba de características Valor Std Característica
__cpp_lib_constexpr_exceptions 202502L (C++26) constexpr std::bad_expected_access

Ejemplo

Véase también

excepción que indica acceso verificado a un optional que no contiene un valor
(class)
excepción lanzada en accesos inválidos al valor de un variant
(class)