fba*_*ipe 5 c++ visual-c++ unreachable-code
我正在开发一个多平台项目,有些平台已经禁用了功能,在这些功能的界面中,我常常做的是这样的事情:
bool Foo::bar() const {
// disabled
abort();
}
Run Code Online (Sandbox Code Playgroud)
GCC/LLVM不要求非void函数返回值(它们只是发出警告),在这种情况下,我调用的地方abort(),它们足够智能甚至不发出警告(因为函数永远不会返回).
有没有办法(编译标志?)使Visual C++ 2010的行为方式相同,所以我不打算破坏Windows版本?我知道我总是可以在中止之后返回值,但是当我在其他平台上工作时,我通常会忘记这一点,并且不给出错误的行为似乎更合适.
小智 2
由于您想要禁用错误添加/w34716为编译标志(假设您使用的是警告级别 3 或更高) - 现在仅发出警告(如果警告级别为 3 或更高)。您还可以禁用警告 ( /wd4716),但这可能不是一个好主意 - 取决于此行为引起的警告数量。