在将变量与其自身进行比较时,使g ++输出警告

时间:2019-08-22 09:23:34

标签: g++

我花了一些时间调试一些代码,问题的根本原因是打字错误,使代码将一个变量与自身而不是另一个变量进行比较。

启用-Wall-Wextra似乎不会发出任何有关变量与其自身比较的警告。

#include <iostream>

int main(){
  int ia = 123;
  if(ia != ia){
    std::cout << " != " << std::endl;
  }
}

即使使用-Wall-Wextra,以上代码也不会发出警告。
当变量与自身进行比较时,有没有办法使g ++生成警告消息?

1 个答案:

答案 0 :(得分:1)

您需要使用更新的GCC版本。 GCC 8张照片:

t.cc: In function ‘int main()’:
t.cc:5:9: warning: self-comparison always evaluates to false [-Wtautological-compare]
   if(ia != ia){
      ~~~^~~~~

这是针对GCC PR 66555实现的。 GCC 6是第一个出现此警告的GCC版本。