atributo de C++: noreturn (desde C++11)
De cppreference.com
< cpp | language | attributes
Indica que la funcion no vuelve o retorna.
Contenido |
[editar] Sintaxis
[[noreturn]]
|
|||||||||
[editar] Explicación
Indica que la funcion no vuelve o retorna.
Este atributo se aplica al nombre de la función que se declara solamente en declaraciones de funciones. El comportamiento es indefinido si la función con este atributo en realidad retorna.
La primera declaración de la función tiene que especificar este atributo si cualquier declaración lo especifica. Si una función se declara con [[noreturn]]
en una unidad de traducción, y la misma función se declara sin [[noreturn]]
en otra unidad de traducción, el programa está mal formado; no se requieren diagnósticos por parte del compilador.
[editar] Ejemplo
Ejecuta este código
[[ noreturn ]] void f() { throw "error"; // de acuerdo } void q [[ noreturn ]] (int i) { // comportamiento indefinido si se llama con un argumento <= 0 if (i > 0) { throw "positivo"; } } // void h() [[noreturn]]; // ERROR: atributo se aplica al tipo de función de h, // no a h misma
[editar] Biblioteca estándar
Las siguientes funciones estándar se declaran con el atributo noreturn
:
Funciones finalizantes | |
(C++11) |
Produce la terminación normal del programa sin limpiar. (función) |
Produce la terminación anormal del programa (sin limpiar). (función) | |
Produce la terminación normal del programa con limpieza. (función) | |
(C++11) |
Produce la terminación normal del programa sin limpiar completamente. (función) |
Función llamada cuando falla el control de excepciones. (función) | |
(en desuso) |
Función llamada cuando la especificación de excepciones dinámica es violada. (función) |
Funciones que siempre lanzan exceptiones | |
(C++11) |
Produce la excepción de un std::exception_ptr. (función) |
lanza la excepción almacenada (función miembro pública de Plantilla:cpp/error/nested exception/title )
| |
(C++11) |
Lanza su argumento mezclado con std::nested_exception. (plantilla de función) |
Non-local jumps (desde C++17) | |
Salta a la ubicación especificada. (función) |
[editar] Véase también
Documentación de C para _Noreturn
|