非常简单。为什么会这样?所有其他整数类型都可以正常工作。
enum : unsigned short {
ushort_min = static_cast<unsigned short>(0u),
ushort_max = static_cast<unsigned short>(~0u)
};
enum : short {
short_min = short(ushort_max << (sizeof(short) * char_bit - 1)),
short_max = short(ushort_max >> 1)
};
std::cout << short_min; // BOOM
答案 0 :(得分:1)
示例代码使用gcc编译时没有错误。这里的答案可能是“升级你的编译器”:
http://www.serverA.com/register/firstname=john&lastname=eddy