noreturn

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

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.

System_CAPS_ICON_note.jpg Nota

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

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();  
}  

__declspec
Palabras clave de C++

Mostrar: