Erreur du compilateur C2382
'function' : redéfinition ; différentes spécifications d’exception
Cette erreur indique qu’une surcharge de fonction a été tentée uniquement sur la spécification d’exception.
Notes
Par défaut, le compilateur considère qu’une noexcept
spécification est équivalente à une throw()
ou throw(some_type)
une spécification. Sous /Za
, cette vérification est plus stricte.
Pour résoudre ce problème, modifiez toutes les déclarations et définitions de la fonction (ou la surcharge de fonction spécifique) pour utiliser la même spécification d’exception.
Exemple
L’exemple suivant génère l’erreur C2382 :
// C2382.cpp
// compile with: /Za /c
void f1(void) noexcept {}
void f1(void) {} // C2382
void f2(void) throw() {} // OK