Espacios de nombres
Variantes
Acciones

atributo de C++: noreturn (desde C++11)

De cppreference.com
< cpp‎ | language‎ | attributes
 
 
 
 
Atributos
(C++23)
(C++14)
(C++20)
(C++17)
noreturn
(C++11)
(C++20)
 

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

[[ 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) [editar]
Produce la terminación anormal del programa (sin limpiar).
(función) [editar]
Produce la terminación normal del programa con limpieza.
(función) [editar]
Produce la terminación normal del programa sin limpiar completamente.
(función) [editar]
Función llamada cuando falla el control de excepciones.
(función) [editar]
(en desuso)
Función llamada cuando la especificación de excepciones dinámica es violada.
(función) [editar]
Funciones que siempre lanzan exceptiones
Produce la excepción de un std::exception_ptr.
(función) [editar]
lanza la excepción almacenada
(función miembro pública de Plantilla:cpp/error/nested exception/title)
Lanza su argumento mezclado con std::nested_exception.
(plantilla de función) [editar]
Non-local jumps (desde C++17)
Salta a la ubicación especificada.
(función) [editar]

[editar] Véase también

Documentación de C para _Noreturn