Namespaces
Variants

std::bad_variant_access

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte de lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de la biblioteca (C++20)
Utilidades de programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
 
 
Definido en el encabezado <variant>
class bad_variant_access : public std::exception
(desde C++17)

std::bad_variant_access es el tipo de la excepción lanzada en las siguientes situaciones:

(desde C++26)

Funciones miembro

(constructor)
construye un nuevo objeto bad_variant_access
(función miembro pública)
operator=
reemplaza el objeto bad_variant_access
(función miembro pública)
what
devuelve la cadena explicativa
(función miembro pública)

std::bad_variant_access:: bad_variant_access

bad_variant_access ( ) noexcept ;
(1) (desde C++17)
(constexpr desde C++26)
bad_variant_access ( const bad_variant_access & other ) noexcept ;
(2) (desde C++17)
(constexpr desde C++26)

Construye un nuevo objeto bad_variant_access con una cadena de bytes terminada en nulo definida por la implementación, accesible a través de what() .

1) Constructor por defecto.
2) Constructor de copia. Si * this y other tienen ambos el tipo dinámico std::bad_variant_access entonces std:: strcmp ( what ( ) , other. what ( ) ) == 0 .

Parámetros

other - otro objeto de excepción a copiar

std::bad_variant_access:: operator=

bad_variant_access & operator = ( const bad_variant_access & other ) noexcept ;
(desde C++17)
(constexpr desde C++26)

Asigna los contenidos con los de other . Si * this y other ambos tienen tipo dinámico std::bad_variant_access entonces std:: strcmp ( what ( ) , other. what ( ) ) == 0 después de la asignación.

Parámetros

other - otro objeto de excepción con el cual asignar

Valor de retorno

* this

std::bad_variant_access:: what

virtual const char * what ( ) const noexcept ;
(desde C++17)
(constexpr desde C++26)

Devuelve la cadena explicativa.

Valor de retorno

Puntero a una cadena terminada en nulo definida por la implementación con información explicativa. La cadena es adecuada para conversión y visualización como std::wstring . Se garantiza que el puntero es válido al menos hasta que se destruye el objeto de excepción del cual se obtiene, o hasta que se llama 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

Las implementaciones pueden, pero no están obligadas a, sobrescribir what() .

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 )

Ejemplo

#include <iostream>
#include <variant>
int main()
{
    std::variant<int, float> v;
    v = 12;
    try
    {
        std::get<float>(v);
    }
    catch (const std::bad_variant_access& e)
    {
        std::cout << e.what() << '\n';
    }
}

Salida posible:

bad_variant_access

Véase también

lee el valor del variant dado el índice o el tipo (si el tipo es único), lanza una excepción en caso de error
(plantilla de función)
(C++17)
llama al funtor proporcionado con los argumentos contenidos en uno o más variant s
(plantilla de función)
(C++26)
llama al funtor proporcionado con el argumento contenido en el variant
(función miembro pública)
excepción que indica acceso verificado a un optional que no contiene un valor
(clase)
excepción que indica acceso verificado a un expected que contiene un valor inesperado
(plantilla de clase)