比较运算符左右子表达式不应相同
10.3.9 ID_selfComparison
与自身比较的结果恒为真或恒为假,往往是某种笔误。
示例(设 a 为变量或表达式):
a == a // Non-compliant
a != a // Non-compliant
a > a // Non-compliant
a >= a // Non-compliant
a < a // Non-compliant
a <= a // Non-compliant
例外:
void foo(float a) {
if (a != a) { // Let it go
....
}
}
当 a != a 为真时表示 a 为无效值“NaN”,这是判断浮点数是否有效的惯用方法,可不受本规则约束。