这是更便利的问题比什么的,但我想知道是否有什么办法可以抑制警告:抑制非平凡无用的警告“控制可以达到非void函数结束”
control may reach end of non-void function [-Wreturn-type]
对于其中我知道的代码没有问题的特定情况。我有我的代码库中一些辅助功能抛出异常,并为这样的代码:
int foo(int i) {
if (i > 10) {
return i*10;
}
else {
Exception::throwExcept(MyCustomException("Error: i not in the accepted range"));
}
}
我知道,它要么返回,或者抛出,不管是什么。因此,在我眼中,这个警告是毫无用处的,只是编译器无法确定控制流路径实际上最终会抛出。
我仍然希望看到这个警告弹出窗口的情况下,它实际上是一个代码是错误的(即没有返回或抛出的路径)的迹象。
这是可能的便携式方式?
编辑:忘了补充我使用的编译器,
Apple LLVM version 8.1.0 (clang-802.0.41)
@Holt它不会改变任何东西,有或没有'else'。 – JBL
如果您删除无意义的“else”,它还会发出警告吗? –
'return Exception :: throwExcept(MyCustomException(“Error:i not in the accepted range”)),0'? – NathanOliver