Clang编译器选项将异常规范lax错误视为警告

时间:2017-09-07 00:03:02

标签: c++ exception clang compiler-options

有没有办法将异常不匹配错误视为clang中的警告?

  

source_file.cpp:12:18:错误:覆盖函数的异常规范比基本版本更宽松       virtual void Func(){}

我收到了谷歌模拟错误指定异常说明符的函数。查看https://github.com/google/googletest/pull/681和其他报告的问题,不确定这是否会在谷歌模拟中修复,所以至少对于测试代码,如果可能的话我想禁用它。

//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 个答案:

答案 0 :(得分:2)

是的,使用-fms-extensions命令行选项 MSVC仅对此进行警告,因此使用clang MSVC兼容模式,代码将编译,错误将替换为等效警告。

有关clang文档中MSVC兼容模式的更多信息,  here