2017-09-07 17 views
0

clang에서 예외 불일치 오류를 경고하는 방법이 있습니까?예외 사양을 처리하는 Clang 컴파일러 옵션 경고로 느슨 함 오류가 발생했습니다.

source_file.cpp:12:18: error: exception specification of overriding function is more lax than base version virtual void Func(){}

예외 지정자를 지정하는 함수에 대해 Google mock에 오류가 발생합니다. https://github.com/google/googletest/pull/681 및 다른보고 된 문제를보고, Google 모의 (google mock)에서 수정 될지 확실하지 않으므로 가능하면 테스트 코드 용으로 적어도 이것을 비활성화하고 싶습니다.

//clang 3.8.0 
#include <iostream> 

struct A 
{ 
    virtual void Func() throw() {} 
}; 
struct B : public A 
{ 
    virtual void Func(){} 
}; 

int main() 
{ 
    B b; 
    return 0; 
} 

답변

1

예, -fms-extensions 명령 줄 옵션을 사용합니다.
MSVC는 이에 대해서만 경고하므로 MSVC 호환 모드 인 clang을 사용하면 코드가 컴파일되고 오류가 그에 상응하는 경고로 바뀝니다.

clang 설명서의 MSVC 호환 모드에 대한 자세한 내용은 here입니다.

+0

감사합니다. – user3279954