std::bad_variant_access
Definido en el archivo de 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:
- std::get(std::variant) llamada con un subíndice o tipo que no coincide con la alternativa actualmente activa.
- std::visit llamada para visitar un variante que es valueless_by_exception.
Contenido |
[editar] 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 aclaratoria. (función miembro pública) |
std::bad_variant_access::bad_variant_access
bad_variant_access() noexcept; |
(1) | (desde C++17) |
bad_variant_access( const bad_variant_access& other ) noexcept; |
(2) | (desde C++17) |
Construye un nuevo objeto bad_variant_access
con una cadena de bytes terminada en nulo definida por la implementación, que es accesible a través de what().
*this
como other
tienen un tipo dinámico std::bad_variant_access
, entonces std::strcmp(what(), other.what()) == 0.Parámetros
other | - | El otro objeto de excepción del que copiar. |
std::bad_variant_access::operator=
bad_variant_access& operator=( const bad_variant_access& other ) noexcept; |
(desde C++17) | |
Asigna el contenido con el de other
. Si tanto *this
como other
tienen el 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 excepción con el cual asignar. |
Valor de retorno
*this
std::bad_variant_access::what
virtual const char* what() const noexcept; |
(desde C++17) | |
Devuelve la cadena aclaratoria.
Parámetros
(Ninguno)
Valor de retorno
Un puntero a una cadena terminada en nulo con información aclaratoria. La cadena es adecuada para convertirse y mostrarse como un std::wstring. Se garantiza que el puntero sea válido al menos hasta que el objeto excepción del cual se obtuvo se destruya, o hasta que una función miembro no const (p. ej., el operador de asignación de copia) se llame en el objeto excepción.
Notas
Se permite, pero no se requiere, que las implementaciones redefinan a what()
.
Heredado de std::exception
Funciones miembro
[virtual] |
Destruye el objeto excepción. (función miembro virtual pública de std::exception )
|
[virtual] |
Devuelve una cadena aclaratoria. (función miembro virtual pública de std::exception )
|
[editar] Ejemplo
#include <variant> #include <iostream> 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'; } }
Posible salida:
bad_variant_access
[editar] Véase también
(C++17) |
Lee el valor del variante dado el subíndice o el tipo (si el tipo es único), lanza una excepción si existe un error. (plantilla de función) |
(C++17) |
Llama al objeto función proporcionado con los argumentos mantenidos por uno o más variantes. (plantilla de función) |