noreturn
Específicos de Microsoft
Este atributo de __declspec indica al compilador que una función no cambie.En consecuencia, el compilador sabe que el código que sigue a una llamada a una función de __declspec (noreturn) es inalcanzable.
Si el compilador encuentra una función con una ruta de acceso de control que devuelve un valor, generará una advertencia (C4715) o el mensaje de error (C2202).Si la ruta de acceso del control no se puede obtener acceso debido a una función que nunca devuelve, puede utilizar __declspec (noreturn) para evitar esta advertencia o error.
[!NOTA]
La adición __declspec (noreturn) a una función de esperada volver puede producir un comportamiento indefinido.
Ejemplo
En el ejemplo siguiente, la cláusula de no contiene una instrucción return.Declarar fatal como __declspec (noreturn) evita un mensaje de error o advertencia.
// noreturn2.cpp
__declspec(noreturn) extern void fatal () {}
int main() {
if(1)
return 1;
else if(0)
return 0;
else
fatal();
}