Есть флаговый enum, для него определены все бинарные операции, возвращают тот же enum.
Я пока не делал operator bool, мало ли что вылезет. Но, в условных операторах уже устал писать ==0 / !=0.
Ну вот и подмывает уже эту мелочь переделать. Тут ещё анноит то, что с интегральными типами можно просто написать if (condition), а с enum'ом надо писать if (condition!=0)