Ради любопытства я экспериментирую с этим:
enum RxqType
{
A = (1 << 0),
B = (1 << 1),
C = (A | B),
D = A+B+C
};
Перечисления C и D определены в терминах более ранних счетчиков. Это необычно, поэтому я не уверен, что это безопасно. Я не могу найти никакого примера об этом через Google (возможно, упускаю из вида).
Кажется, все хорошо, когда я printf
или cout
C
и D
на Visual С++ 2013 и MinGW. Но я беспокоюсь, стандартно ли это соответствует, и вызывает ли это поведение undefined.
Может ли кто-нибудь ответить на мое беспокойство по поводу стандартного соответствия и поведения undefined? И есть ли что-нибудь еще, что мне нужно?