Bar*_*kPL 8 c++ gcc compiler-errors compilation
当函数定义在其体内没有返回时,是否可以强制执行错误(打破构建)?
考虑这个功能:
int sum(int a, int b) {
int c = a + b;
// and here should be return
};
Run Code Online (Sandbox Code Playgroud)
当我编译时g++ -Wall,我得到:
return函数中没有语句返回non-void [-Wreturn-type]
但我希望这是一个很难的错误,而不是一个警告.
我目前正在使用GCC 4.9.2,但是如果有不同版本的GCC的解决方案也会有所帮助.
Tob*_*ght 13
GCC可以选择-Werror将所有警告转换为错误.
如果你想升级只有特定的警告,你可以使用-Werror=X,在这里X是警告类型,没有-W前缀.在你的特定情况下,那将是-Werror=return-type.
请注意,这只会return在返回值的函数中报告缺失.如果你想强制执行return;必须在返回的函数中明确写入void,你可能会运气不好.