Condividi tramite


noreturn

Sezione specifica Microsoft

Questo attributo __declspec indica al compilatore che la funzione non restituisce un valore. Di conseguenza, per il compilatore è evidente che il codice che segue una chiamata a una funzione __declspec(noreturn) non è eseguibile.

Se il compilatore rileva una funzione con un percorso di controllo che non restituisce un valore, viene generato un avviso (C4715) o un messaggio di errore (C2202). Se il percorso di controllo non può essere raggiunto a causa di una funzione che non restituisce mai un valore, è possibile utilizzare __declspec(noreturn) per evitare il messaggio di errore o l'avviso.

Nota

L'aggiunta di __declspec(noreturn) a una funzione che si prevede restituisca un valore può determinare un comportamento indefinito.

Esempio

Nell'esempio seguente, la clausola else non contiene un'istruzione return. Dichiarare fatal come __declspec(noreturn) consente di evitare il messaggio di errore o l'avviso.

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

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

Vedere anche

Riferimenti

__declspec

Parole chiave C++