有没有一种方法可以使枚举类型成为无符号的?以下代码给我一个关于有符号/无符号比较的警告。
enum EEE {
X1 = 1
};
int main()
{
size_t x = 2;
EEE t = X1;
if ( t < x ) std::cout << "ok" << std::endl;
return 0;
}
我尝试使用以下代码强制编译器使用无符号的枚举基础类型:
enum EEE {
X1 = 1,
XN = 18446744073709551615LL
// I've tried XN = UINT_MAX (in Visual Studio). Same warning.
};
但是仍然会出现警告。
将常量更改为UINT_MAX
,使其在GNU C++中按照标准应该工作。在VS中似乎存在一个错误。感谢James的提示。