不会对枚举数和非枚举数的警告都出现在条件表达式中

时间:2015-03-26 16:26:16

标签: c++ gcc enums

当枚举与整数值进行比较时,我希望在gcc中看到编译器警告。根据{{​​3}},可以使用-WextraAn enumerator and a non-enumerator both appear in a conditional expression)启用此功能。

不幸的是,我的gcc版本没有警告' gcc(Ubuntu 4.8.2-19ubuntu1)4.8.2'。

这是一个小代码示例:

#include <iostream>
using namespace std;

enum test1{
   AAA,
   BBB
};
enum test2{
   CCC = 3,
   DDD = 5
};

int main() {
  test1 t1 = AAA;
  test2 t2 = CCC;

  int i = 5;
  unsigned int u = -4;

  if(t1 == t2) return -2;
  if(t1 == -1) return -3;
  if(i == u) return -3;
  cout << "Hello, world!" << endl;
  return 0;
}

使用

进行编译
g++ -Wextra -Wno-enum-compare main.cpp

只会警告有符号和无符号整数之间的比较,而不是关于枚举和整数的比较。

请注意-Wenum-compare是关于不同枚举类型之间的比较,默认情况下是启用的。

我需要做什么,根据gcc文档获取警告?

0 个答案:

没有答案