std::unexpected
| Definido en el encabezado <exception>
|
||
void unexpected();
|
(hasta C++11) | |
[[noreturn]] void unexpected();
|
(desde C++11) (hasta C++17) (obsoleto en C++11) |
|
std::unexpected() es llamado por el tiempo de ejecución de C++ cuando una especificación dinámica de excepciones es violada: se lanza una excepción desde una función cuya especificación de excepciones prohíbe excepciones de este tipo.
std::unexpected() también puede ser llamado directamente desde el programa.
En cualquier caso, std::unexpected llama al std::unexpected_handler. El std::unexpected_handler llama a std::terminate.
|
Si un destructor restableció el manejador inesperado durante el desenrollado de la pila y el desenrollado luego llevó a |
(hasta C++11) |
|
Si un destructor restableció el manejador inesperado durante el desenrollado de la pila, no se especifica qué manejador se llama si el desenrollado luego llevó a |
(desde C++11) |
Excepciones
Lanza cualquier excepción lanzada por el std::unexpected_handler actualmente instalado.
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 2111 | C++11 |
el efecto de llamar
std::set_unexpected
durante el desenrollado de pila
difiere de C++98 y rompe algunas ABIs |
se hizo no especificado |
Véase también
|
(C++23)
|
representado como un valor inesperado
(plantilla de clase) |
|
(obsoleto en C++11)
(eliminado en C++17)
|
el tipo de la función llamada por
std::unexpected
(typedef) |