__declspec(noreturn)
Remonter à Liste alphabétique des mots clés - Index
Catégorie
Modificateurs (C++), Extensions des mots clés, Spécificateurs de classe de stockage (C++)
Syntaxe
__declspec( noreturn ) declarator
Cet attribut __declspec indique au compilateur qu'une fonction ne revient pas. Par conséquent, le compilateur sait que le code suivant un appel à une fonction __declspec(noreturn) ne peut être atteint.
Si le compilateur trouve une fonction ayant un chemin de contrôle qui ne renvoie pas de valeur, il génère un avertissement. Si le chemin de contrôle ne peut être atteint en raison d'une fonction qui ne revient pas, vous pouvez utiliser __declspec(noreturn) pour éviter cet avertissement ou cette erreur.
Exemple
Considérez le code suivant. La clause else ne contient pas d'instruction return, aussi le programmeur déclare-t-il fatal comme __declspec(noreturn) pour éviter un message d'erreur ou d'avertissement.
__declspec(noreturn) extern void fatal () { // Code omitted } int foo() { if(...) return 1; else if(...) return 0; else fatal(); }