1 2 3 4 5 6 7 8 9 10 11 12 13 14
#define DEFINE_OPERATORS(classT, flagsT) \ inline classT::flagsT \ operator&(const classT::flagsT& lh1, \ const classT::flagsT::EnumType rh1) \ { \ return classT::flagsT(lhs) &= rhs; \ } \ \ inline classT::flagsT \ operator&(const classT::flagsT::EnumType lh2, \ const classT::flagsT& rh2) \ { \ return classT::flagsT(lhs) &= rhs; \ }