![]() |
1
4
毫无疑问,这是一个明显的错误。
但是,我们如何知道编译器正在使用这样的
|
![]() |
2
11
编译器无法静态分析所有代码路径,并始终考虑所有可能性。从理论上讲,仅仅通过查看程序的源代码就可以对程序行为进行完整的分析,从而解决无法确定的停止问题。编译器有一组有限的静态分析规则来检测规则。C++标准不要求编译器发出这样的警告,所以,不,它不是bug。它更像是一个不存在的功能。 |
![]() |
3
7
否,条件运算符不计算两个参数。然而,如果编译器能够检测到这种情况,通常会报告一个被零除的可能性。该标准占用约2页来描述该操作员的行为并非毫无意义。 从N-4411:
此外,请注意:
|
![]() |
4
3
将生成分区的代码,因此会发出警告。但是,当你需要的时候,树枝永远不会被拿走
|
![]() |
5
3
浮点数的运算符==不安全(即,由于舍入问题,您不能信任它)。在这种特定情况下,它实际上是安全的,因此您可以忽略警告,但编译器不会基于在一般情况下其结果有些不可预测的运算符进行此类分析。 |
![]() |
6
3
条件运算符不应计算所有参数。但我相信你可以
顺便说一下,Visual C++ 2008没有给出这样的警告。 |
![]() |
7
0
除其他注释外:警告由编译器生成,死分支由优化器删除,优化器稍后运行-甚至可能在链接阶段。
|
![]() |
8
0
也许值得一试。当然,也可以在执行此功能时,使用适当的
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |