出于好奇,我正在进行这个实验:
enum RxqType
{
A = (1 << 0),
B = (1 << 1),
C = (A | B),
D = A+B+C
};
枚举类型C和D是根据早期的枚举类型定义的。这很不寻常,所以我不确定它是否安全。通过谷歌无法找到任何关于它的示例(也许是被忽略了)。
在Visual C++ 2013和MinGW上使用printf
或cout
输出C
和D
时似乎没有问题。但我担心它是否符合标准,并且是否会触发未定义的行为。
有人能回答我对标准符合性和未定义行为的担忧吗?还有其他需要我关注的事情吗?
enum { d, e, f=e+2 };
... - PiotrNycz