如何解决g++ -Wuninitialized 在 std::min() 处不显示警告
我使用 g++ -Wuninitialized
(g++ 7.5.0 版)编译了以下代码,但没有收到任何警告:
#include <algorithm>
int main() {
int a,b;
b = std::min(a,0);
}
如您所见,std::min()
是使用参数 a
和 0
调用的,但此时 a
尚未初始化。这应该给你一个警告,但它没有。
如果你用自定义函数替换 std::min()
,编译器会给你一个警告:
代码
int f(int x) {
return 2 * x;
}
int main() {
int a,b;
b = f(a);
}
警告
<source>: In function 'int main()':
<source>:11:10: warning: 'a' is used uninitialized in this function [-Wuninitialized]
11 | b = f(a);
| ~^~~
为什么这不适用于 std::min()
?我也试过 std::max()
并且它也没有给我警告。但是使用 std::hypot()
我得到了一个。有没有办法让它也适用于 std::min()
?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。