Błąd kompilatora C2382

"function" : redefinition; różne specyfikacje wyjątków

Ten błąd wskazuje, że przeciążenie funkcji zostało podjęto tylko w specyfikacji wyjątku.

Uwagi

Domyślnie kompilator uznaje specyfikację noexcept za równoważną throw() specyfikacji lub throw(some_type) . W obszarze /Zata kontrola jest bardziej rygorystyczna.

Aby rozwiązać ten problem, zmień wszystkie deklaracje i definicje funkcji (lub przeciążenie określonej funkcji), aby użyć tej samej specyfikacji wyjątku.

Przykład

Poniższy przykład generuje C2382:

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

Zobacz też

/Za (Wyłącz rozszerzenia językowe)