当函数定义在其主体中没有返回时,是否可以强制执行错误(破坏构建)?
考虑这个函数:
int sum(int a, int b) {
int c = a + b;
// And here should be return
};
当我用 g++ -Wall
编译时,我得到:
no
return
statement in function returning non-void [-Wreturn-type
]
但我希望这是一个硬错误而不是警告。
我目前使用的是 GCC 4.9.2,但如果有针对不同版本 GCC 的解决方案,了解一下也会很有帮助。
最佳答案
GCC 有选项 -Werror将所有警告变成错误。
如果只想升级特定警告,可以使用-Werror=X
,其中X
是警告类型,没有-W
前缀。在您的特定情况下,这将是 -Werror=return-type
。
请注意,这只会在返回值的函数中报告缺少的 return
。如果你想强制 return;
必须显式地写在返回 void
的函数中,你可能运气不好。
关于c++ - 当函数在 GCC 中没有任何返回值时,如何强制执行错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42760220/