noreturn
Specifické pro produkty společnosti Microsoft
Tento atribut __declspec kompilátoru říká, že funkce neprovede navrácení.V důsledku toho kompilátor ví, že je kód následující volání funkce __declspec(noreturn) nedostupný.
Pokud kompilátor najde funkci s cestou řízení, která nevrací hodnotu, vygeneruje upozornění (C4715) nebo chybovou zprávu (C2202).Pokud nelze cesty řízení nikdy dosáhnout z důvodu, že funkce nevrací hodnotu, lze použít atribut __declspec(noreturn), pokud chcete tomuto upozornění nebo chybě zabránit.
[!POZNÁMKA]
Přidání atributu __declspec(noreturn) funkci, která očekává navrácení, může způsobit nedefinované chování.
Příklad
V následujícím příkladu klauzule else neobsahuje příkaz return. Deklarování funkce fatal s atributem __declspec(noreturn) zabrání chybě nebo upozornění.
// noreturn2.cpp
__declspec(noreturn) extern void fatal () {}
int main() {
if(1)
return 1;
else if(0)
return 0;
else
fatal();
}