Tc1*_*c14 6 c++ g++ gcc-warning
我用g++ -Wuninitialized(g++ Version 7.5.0)编译了以下代码,但没有收到任何警告:
#include <algorithm>
int main() {
int a, b;
b = std::min(a, 0);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,std::min()使用参数aand调用0,但此时a未初始化。这应该给你一个警告,但它没有。
如果std::min()用自定义函数替换,编译器会给你一个警告:
代码
int f(int x) {
return 2 * x;
}
int main() {
int a, b;
b = f(a);
}
Run Code Online (Sandbox Code Playgroud)
警告
<source>: In function 'int main()':
<source>:11:10: warning: 'a' is used uninitialized in this function [-Wuninitialized]
11 | b = f(a);
| ~^~~
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用std::min()?我也试过std::max(),它也没有给我警告。但是std::hypot()我得到了一个。有没有办法让它也适用std::min()?