다음을 통해 공유


컴파일러 오류 C2382

'function': 재정의, 다른 예외 사양

이 오류는 예외 사양에서만 함수 오버로드가 시도되었음을 나타냅니다.

설명

기본적으로 컴파일러는 사양이 noexcept 사양 또는 throw(some_type) 사양과 throw() 동일하다고 간주합니다. 아래에서 /Za이 검사는 더 엄격합니다.

이 문제를 해결하려면 함수의 모든 선언 및 정의(또는 특정 함수 오버로드)를 동일한 예외 사양을 사용하도록 변경합니다.

예시

다음 샘플에서는 C2382를 생성합니다.

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

참고 항목

/Za (언어 확장 사용 안 함)