noreturn
Específico da Microsoft
Esse atributo __declspec diz ao compilador que uma função não retorna. Como consequência, o compilador sabe que o código seguinte a uma chamada para uma função __declspec(noreturn) está inacessível.
Se o compilador encontra uma função com um caminho de controle que não retorna um valor, ele gera um aviso (C4715) ou uma mensagem de erro (C2202). Se o caminho de controle não pode ser acessado devido a uma função que nunca retorna, você pode usar __declspec(noreturn) para evitar esse aviso ou erro.
Dica
Adicionar __declspec(noreturn) a uma função cujo retorno é esperado pode resultar em um comportamento indefinido.
Exemplo
No exemplo a seguir, a cláusula else não contém uma instrução return. Declarar fatal como __declspec(noreturn) impede um erro ou uma mensagem de aviso.
// noreturn2.cpp
__declspec(noreturn) extern void fatal () {}
int main() {
if(1)
return 1;
else if(0)
return 0;
else
fatal();
}