我正在做一个多平台项目,一些平台禁用了功能,在这些功能的界面中,我做的常见事情是这样的:
bool Foo::bar() const {
// disabled
abort();
}
GCC/LLVM 不要求非 void 函数返回值(它们只是给出警告),在这种情况下,我调用abort()
,它们足够聪明,甚至不会给出警告(因为函数无论如何都不会返回)。
有没有办法(编译标志?)使 Visual C++ 2010 的行为方式相同,所以我不会继续破坏 Windows 构建?我知道我总是可以在中止后返回值,但是在其他平台上工作时我通常会忘记这一点,并且不给出错误的行为似乎更合适。