noreturn
Programu Microsoft
To __declspec atrybut informuje kompilator, funkcja nie zwraca.W rezultacie kompilator orientuje się, że kod po wywołaniu __declspec(noreturn) funkcja jest nieosiągalny.
Jeśli kompilator znajdzie funkcji ze ścieżką kontroli, który nie zwraca wartości, generuje komunikat o błędzie (C2202) lub ostrzeżenie (C4715).Jeśli nie można osiągnąć ścieżki kontroli ze względu na funkcję, która nigdy nie zwraca, można użyć __declspec(noreturn) do zapobiegania to ostrzeżenie lub błąd.
[!UWAGA]
Dodawanie __declspec(noreturn) do funkcji, która powinna zwrócić może skutkować niezdefiniowane zachowanie.
Przykład
W następującym przykładzie else klauzuli nie zawiera instrukcję return.Zadeklarowanie fatal jako __declspec(noreturn) unika błąd lub ostrzeżenie.
// noreturn2.cpp
__declspec(noreturn) extern void fatal () {}
int main() {
if(1)
return 1;
else if(0)
return 0;
else
fatal();
}