inline constexpr bool operator==( Name::Enum lhs, Name rhs )            { return( rhs == lhs ); }       \
inline constexpr bool operator!=(Name:: Enum lhs, Name rhs )            { return( rhs != lhs ); }       \
inline constexpr Name 
operator&( Name::Enum lhs, Name::Enum rhs )      { 
return Name( lhs ) & rhs; }   \
 
inline constexpr Name 
operator&( Name::Enum lhs, Name rhs )            { 
return rhs & lhs; }           \
 
inline constexpr Name 
operator|( Name::Enum lhs, Name::Enum rhs )      { 
return Name( lhs ) | rhs; }   \
 
inline constexpr Name 
operator|( Name::Enum lhs, Name rhs )            { 
return rhs | lhs; }           \
 
inline constexpr Name 
operator^( Name::Enum lhs, Name::Enum rhs )      { 
return Name( lhs ) ^ rhs; }   \
 
inline constexpr Name 
operator^( Name::Enum lhs, Name rhs )            { 
return rhs ^ lhs; }           \
 
inline constexpr Name operator~( Name::Enum lhs )                       { return ~Name( lhs ); }
BitField< TInt > operator&(const BitField< TInt > &lhs, const BitField< TInt > &rhs)
BitField< TInt > operator^(const BitField< TInt > &lhs, const BitField< TInt > &rhs)
Match operator|(Match::Mode lhs, Match::Mode rhs)