Da, da , vidim šta je po sredi. Mora jednostavno promenljiva da se deklariše kao int, da bi članovi enum-a mogli da se koriste kao flag-ovi.
Srećom u međuvremenu sam otkrio da Qt biblioteka ima rešenje za ovo. QFlags tempalete klasu koja wrapuje bilo koji enum i omogućava sve ovo.
Kod:
enum AFlag { Flag1 = 1, Flag2 = 2, Flag3 = 4, Flag4 = 8 };
typedef QFlags<AFlag> SomeFlags;
ili
Q_DECLARE_FLAGS(SomeFlags, AFlag)
i onda može
SomeFlags f = Flag1 | Flag2;
f |= Flag3;
(f |= Flag2) ^= Flag2