Partilhar via


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();
}

Consulte também

Referência

__declspec

Palavras-chave C++