Lines Matching refs:Enum
30 #define MESA_DEFINE_CPP_ENUM_BINARY_OPERATOR(Enum, op) \
33 Enum operator op (Enum a, Enum b) \
35 using IntType = std::underlying_type_t<Enum>; \
38 return static_cast<Enum>(ua op ub); \
42 Enum& operator op##= (Enum &a, Enum b) \
44 using IntType = std::underlying_type_t<Enum>; \
48 a = static_cast<Enum>(ua); \
53 #define MESA_DEFINE_CPP_ENUM_UNARY_OPERATOR(Enum, op) \
56 Enum operator op (Enum a) \
58 using IntType = std::underlying_type_t<Enum>; \
60 return static_cast<Enum>(op ua); \
64 #define MESA_DEFINE_CPP_ENUM_BITFIELD_OPERATORS(Enum) \
65 MESA_DEFINE_CPP_ENUM_BINARY_OPERATOR(Enum, |) \
66 MESA_DEFINE_CPP_ENUM_BINARY_OPERATOR(Enum, &) \
67 MESA_DEFINE_CPP_ENUM_BINARY_OPERATOR(Enum, ^) \
68 MESA_DEFINE_CPP_ENUM_UNARY_OPERATOR(Enum, ~)
72 #define MESA_DEFINE_CPP_ENUM_BITFIELD_OPERATORS(Enum)