次の方法で共有


コンパイラ エラー C2382

'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

関連項目

/Za (言語拡張機能を無効にする)