当枚举与整数值进行比较时,我希望在gcc中看到编译器警告。根据{{3}},可以使用-Wextra
(An 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文档获取警告?