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 /Za
ta 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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla