8 template<
typename Enum>
39 inline bool testFlag(Enum f)
const {
return (i & f) == f && (f != 0 || i == int(f) ); }
42 #define ULIB_OPERATORS_FOR_FLAGS(Flags) \
43 CONSTEXPR inline QFlags<Flags::enum_type> operator|(Flags::enum_type f1, Flags::enum_type f2) \
44 { return QFlags<Flags::enum_type>(f1) | f2; } \
45 CONSTEXPR inline QFlags<Flags::enum_type> operator|(Flags::enum_type f1, QFlags<Flags::enum_type> f2) \
CONSTEXPR Flags operator^(Flags f) const
Definition: Flags.h:30
bool testFlag(Enum f) const
Definition: Flags.h:39
Flags & operator^=(Enum f)
Definition: Flags.h:24
Flags & operator=(const Flags &f)
Definition: Flags.h:18
Flags & operator|=(Flags f)
Definition: Flags.h:21
Flags & operator&=(uint mask)
Definition: Flags.h:20
CONSTEXPR Flags operator&(int mask) const
Definition: Flags.h:32
Enum enum_type
Definition: Flags.h:13
CONSTEXPR Flags operator|(Flags f) const
Definition: Flags.h:28
#define CONSTEXPR
Definition: Types.h:161
CONSTEXPR Flags(Enum f)
Definition: Flags.h:15
CONSTEXPR Flags operator|(Enum f) const
Definition: Flags.h:29
CONSTEXPR Flags operator^(Enum f) const
Definition: Flags.h:31
Flags & operator&=(int mask)
Definition: Flags.h:19
CONSTEXPR Flags(const Flags &f)
Definition: Flags.h:14
Flags & operator^=(Flags f)
Definition: Flags.h:23
CONSTEXPR bool operator!() const
Definition: Flags.h:37
CONSTEXPR Flags operator~() const
Definition: Flags.h:35
CONSTEXPR Flags operator&(uint mask) const
Definition: Flags.h:33
CONSTEXPR Flags()
Definition: Flags.h:16
Flags & operator|=(Enum f)
Definition: Flags.h:22
CONSTEXPR Flags operator&(Enum f) const
Definition: Flags.h:34