Teilen über


Compilerfehler C2382

'Funktion': Neudefinition; unterschiedliche Ausnahmespezifikationen

Hinweise

Dieser Fehler gibt an, dass nur für die Ausnahmespezifikation eine Funktionsüberladung versucht wurde.

Standardmäßig betrachtet der Compiler eine noexcept Spezifikation als gleichwertig mit einer throw() oder throw(some_type) einer Spezifikation. Unter /Za, ist diese Prüfung strenger.

Um dieses Problem zu beheben, ändern Sie alle Deklarationen und Definitionen der Funktion (oder die spezifische Funktionsüberladung), um dieselbe Ausnahmespezifikation zu verwenden.

Beispiel

Im folgenden Beispiel wird C2382 generiert:

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

Siehe auch

/Za (Spracherweiterungen deaktivieren)