24 #include <type_traits>    29 #ifndef DOXYGEN_SHOULD_SKIP_THIS    88     : m_data(static_cast<
Type>(~0))
    99     : m_data(static_cast<
Type>(e))
   110       return Flags(~m_data);
   120       return Flags(m_data | flags.m_data);
   130       m_data |= flags.m_data;
   141       return Flags(m_data & flags.m_data);
   151       m_data &= flags.m_data;
   160     constexpr 
operator bool()
 const {
   171       return (m_data & static_cast<Type>(flag)) != 0;
   180       m_data |= 
static_cast<Type>(flag);
   189       m_data &= ~static_cast<
Type>(flag);
   195     using Type = 
typename std::underlying_type<E>::type;
   295   template<
typename E, 
typename ... 
F>
   297     return Flags<E>(flag) | combineFlags(others ...);
   300 #ifndef DOXYGEN_SHOULD_SKIP_THIS   307 struct EnableBitmaskOperators {
   308   static constexpr 
bool value = 
false;
   316 typename std::enable_if<EnableBitmaskOperators<E>::value, 
gf::Flags<E>>::type
   323 typename std::enable_if<EnableBitmaskOperators<E>::value, 
gf::Flags<E>>::type
   324 operator&(
E lhs, 
E rhs) {
   330 typename std::enable_if<EnableBitmaskOperators<E>::value, 
gf::Flags<E>>::type
 typename std::underlying_type< Flip >::type Type
The underlying type of the enum. 
Definition: Flags.h:195
 
Semantic type to represent "none". 
Definition: Types.h:37
 
Bitfield relying on an enumeration. 
Definition: Flags.h:68
 
Flags< E > & operator &=(Flags< E > flags)
Binary AND and assignment. 
Definition: Flags.h:150
 
constexpr Flags< E > combineFlags(E flag, F ... others)
Combine several enum values into a flag value. 
Definition: Flags.h:296
 
void reset(E flag)
Reset a flag. 
Definition: Flags.h:188
 
constexpr Flags(NoneType)
Constructor with no flag set. 
Definition: Flags.h:78
 
Semantic type to represent "all". 
Definition: Types.h:53
 
constexpr Flags operator &(Flags flags) const
Binary AND between two bitfields. 
Definition: Flags.h:140
 
constexpr Flags(AllType)
Constructor with all flags set. 
Definition: Flags.h:87
 
constexpr Flags< E > operator~() const
Binary NOT operator. 
Definition: Flags.h:109
 
constexpr Flags(E e)
Constructor with an enum value. 
Definition: Flags.h:98
 
constexpr bool test(E flag) const
Test if a specified flag is set. 
Definition: Flags.h:170
 
Type getValue() const
Get the underlying value of the flags. 
Definition: Flags.h:204
 
The namespace for gf classes. 
Definition: Action.h:34
 
Flags< E > & operator|=(Flags< E > flags)
Binary OR and assignment. 
Definition: Flags.h:129
 
constexpr Flags operator|(Flags flags) const
Binary OR between two bitfields. 
Definition: Flags.h:119
 
constexpr Flags< E > operator|(Flags< E > lhs, E rhs)
Binary OR between a bitfield and a flag. 
Definition: Flags.h:228
 
Deserializer & operator|(Deserializer &ar, T &data)
Definition: SerializationOps.h:313
 
constexpr Flags< E > operator|(E lhs, Flags< E > rhs)
Binary OR between a flag and a bitfield. 
Definition: Flags.h:242
 
constexpr Flags< E > combineFlags(E flag)
Combine a single enum value into a flag value. 
Definition: Flags.h:283