6#define ULANG_ENUM_BIT_FLAGS(Enum, ...) \
7 __VA_ARGS__ Enum& operator|=(Enum& Lhs, Enum Rhs) { return Lhs = (Enum)((__underlying_type(Enum))Lhs | (__underlying_type(Enum))Rhs); } \
8 __VA_ARGS__ Enum& operator&=(Enum& Lhs, Enum Rhs) { return Lhs = (Enum)((__underlying_type(Enum))Lhs & (__underlying_type(Enum))Rhs); } \
9 __VA_ARGS__ Enum& operator^=(Enum& Lhs, Enum Rhs) { return Lhs = (Enum)((__underlying_type(Enum))Lhs ^ (__underlying_type(Enum))Rhs); } \
10 __VA_ARGS__ Enum operator| (Enum Lhs, Enum Rhs) { return (Enum)((__underlying_type(Enum))Lhs | (__underlying_type(Enum))Rhs); } \
11 __VA_ARGS__ Enum operator& (Enum Lhs, Enum Rhs) { return (Enum)((__underlying_type(Enum))Lhs & (__underlying_type(Enum))Rhs); } \
12 __VA_ARGS__ Enum operator^ (Enum Lhs, Enum Rhs) { return (Enum)((__underlying_type(Enum))Lhs ^ (__underlying_type(Enum))Rhs); } \
13 __VA_ARGS__ bool operator! (Enum E) { return !(__underlying_type(Enum))E; } \
14 __VA_ARGS__ Enum operator~ (Enum E) { return (Enum)~(__underlying_type(Enum))E; }
19template<
typename Enum>
25template<
typename Enum>
Definition VVMEngineEnvironment.h:23
bool Enum_HasAllFlags(Enum Flags, Enum Contains)
Definition EnumUtils.h:20
bool Contains(TFirst First, TLast Last, T &&Arg)
Definition Contains.h:10
bool Enum_HasAnyFlags(Enum Flags, Enum Contains)
Definition EnumUtils.h:26