Я часто использую перечисления для битовых флагов, например:
enum EventType {
NODE_ADDED = 1 << 0,
NODE_DELETED = 1 << 1,
LINK_ADDED = 1 << 2,
LINK_DELETED = 1 << 3,
IN_PIN_ADDED = 1 << 4,
IN_PIN_DELETED = 1 << 5,
IN_PIN_CHANGE = 1 << 6,
OUT_PIN_ADDED = 1 << 7,
OUT_PIN_DELETED = 1 << 8,
OUT_PIN_CHANGE = 1 << 9,
ALL = NODE_ADDED | NODE_DELETED | ...,
};
Существует ли чистый менее повторяющийся способ определения флага ALL, который объединяет все другие флаги в перечислении?Для небольших перечислений вышеприведенное работает хорошо, но допустим, что в перечислении есть 30 флагов, это становится утомительным.Работает ли что-то (в общем) как это
ALL = -1
?