'function' : 再定義 ; 異なる例外指定です
このエラーは関数のオーバーロードが例外の指定でのみ試行されたことを示します。
解説
既定では、コンパイラは noexcept
の指定を、throw()
または throw(some_type)
の指定と同等と見なします。 /Za
では、このチェックはより厳密になります。
この問題を解決するには、関数のすべての宣言と定義 (または特定の関数オーバーロード) を、同じ例外指定を使用するように変更します。
例
次の例では C2382 が生成されます。
// C2382.cpp
// compile with: /Za /c
void f1(void) noexcept {}
void f1(void) {} // C2382
void f2(void) throw() {} // OK