Share via


noreturn

Específicos de Microsoft

Este atributo __declspec indica al compilador que una función no devuelve resultados. Como consecuencia, el compilador sabe que no se puede tener acceso al código que sigue a una llamada a una función __declspec(noreturn).

Si el compilador encuentra una función con una ruta de acceso de control que no devuelve un valor, genera una advertencia (C4715) o un mensaje de error (C2202). Si no se puede tener acceso a la ruta de acceso de control debido a una función que nunca devuelve resultados, puede utilizar __declspec(noreturn) para evitar esta advertencia o este error.

Nota

La adición de __declspec(noreturn) a una función que se espera que devuelva resultados puede dar lugar a un comportamiento indefinido.

Ejemplo

En el ejemplo siguiente, la cláusula else no contiene una instrucción return. La declaración de fatal como __declspec(noreturn) evita un mensaje de error o de advertencia.

// noreturn2.cpp
__declspec(noreturn) extern void fatal () {}

int main() {
   if(1)
     return 1;
   else if(0)
     return 0;
   else
     fatal();
}

Vea también

Referencia

__declspec

Palabras clave de C++