Compartilhar via


Erro do compilador C2382

'function' : redefinição; especificações de exceção diferentes

Esse erro indica que uma sobrecarga de função foi tentada apenas na especificação de exceção.

Comentários

Por padrão, o compilador considera uma especificação noexcept equivalente a uma especificação throw() ou throw(some_type). Em /Za, essa verificação é mais rigorosa.

Para resolver esse problema, altere todas as declarações e definições da função (ou a sobrecarga de função específica) para usar a mesma especificação de exceção.

Exemplo

O exemplo a seguir gera o erro C2382:

// C2382.cpp
// compile with: /Za /c
void f1(void) noexcept {}
void f1(void) {}   // C2382
void f2(void) throw() {}   // OK

Confira também

/Za (Desabilitar extensões de linguagem)