17template <
typename... Types>
33template<
typename T,
typename... Types>
36 static const bool value =
false;
50template<
typename T,
typename U,
typename... Types>
62template<
typename,
typename>
76template<
typename T,
typename... Types>
86template<
typename,
typename>
103template<
typename T,
typename... Types,
typename... OtherTypes>
142 explicit operator T()
const;
163template <
typename Type>
178 template <
typename ConstructionType>
197 operator Type()
const;
211 template <
typename... T>
223 template <
typename... T>
238 template <
typename... T>
250 template <
typename... T>
265 template <
typename... T>
277 template <
typename... T>
292 template <
typename... T>
309 template <
typename T>
310 auto operator==(T other)
const ->
typename std::enable_if<is_member_of_SharedBitfield<T, Type>::value,
bool>::type;
322template <
typename Type,
typename... Types>
337 template <
typename ConstructionType>
356 operator Type()
const;
370 template <
typename... T>
382 template <
typename... T>
397 template <
typename... T>
409 template <
typename... T>
424 template <
typename... T>
436 template <
typename... T>
451 template <
typename... T>
468 template <
typename T>
494template <
typename Enum,
typename ConvertibleEnum>
495typename std::enable_if<std::is_base_of<SharedBitfieldBase<typename std::underlying_type<typename std::enable_if<std::is_enum<Enum>::value, Enum>::type>::type>, ConvertibleEnum>::value, Enum>::type
516template <
typename ConvertibleEnum,
typename Enum>
517typename std::enable_if<std::is_base_of<SharedBitfieldBase<typename std::underlying_type<typename std::enable_if<std::is_enum<Enum>::value, Enum>::type>::type>, ConvertibleEnum>::value, Enum>::type
538template <
typename Enum,
typename ConvertibleEnum>
539typename std::enable_if<std::is_base_of<SharedBitfieldBase<typename std::underlying_type<typename std::enable_if<std::is_enum<Enum>::value, Enum>::type>::type>, ConvertibleEnum>::value, Enum>::type
560template <
typename Enum,
typename ConvertibleEnum>
561typename std::enable_if<std::is_base_of<SharedBitfieldBase<typename std::underlying_type<typename std::enable_if<std::is_enum<Enum>::value, Enum>::type>::type>, ConvertibleEnum>::value, Enum>::type
582template <
typename ConvertibleEnum,
typename Enum>
583typename std::enable_if<std::is_base_of<SharedBitfieldBase<typename std::underlying_type<typename std::enable_if<std::is_enum<Enum>::value, Enum>::type>::type>, ConvertibleEnum>::value, Enum>::type
604template <
typename Enum,
typename ConvertibleEnum>
605typename std::enable_if<std::is_base_of<SharedBitfieldBase<typename std::underlying_type<typename std::enable_if<std::is_enum<Enum>::value, Enum>::type>::type>, ConvertibleEnum>::value, Enum>::type
626template <
typename Enum,
typename ConvertibleEnum>
627typename std::enable_if<std::is_base_of<SharedBitfieldBase<typename std::underlying_type<typename std::enable_if<std::is_enum<Enum>::value, Enum>::type>::type>, ConvertibleEnum>::value, Enum>::type
648template <
typename ConvertibleEnum,
typename Enum>
649typename std::enable_if<std::is_base_of<SharedBitfieldBase<typename std::underlying_type<typename std::enable_if<std::is_enum<Enum>::value, Enum>::type>::type>, ConvertibleEnum>::value, Enum>::type
670template <
typename Enum,
typename ConvertibleEnum>
671typename std::enable_if<std::is_base_of<SharedBitfieldBase<typename std::underlying_type<typename std::enable_if<std::is_enum<Enum>::value, Enum>::type>::type>, ConvertibleEnum>::value, Enum>::type
typename SharedBitfield< Types... >::UnderlyingType UnderlyingType
inherit UnderlyingType declaration
Definition: SharedBitfield.h:326
typename SharedBitfieldBase< typename std::underlying_type< Type >::type >::UnderlyingType UnderlyingType
inherit UnderlyingType declaration
Definition: SharedBitfield.h:167
Invalid SharedBitfield class as it contains no valid bitfield types.
Definition: SharedBitfield.h:153
The base class of a SharedBitfield, containing the actual (and convertible) bitfield value.
Definition: SharedBitfield.h:122
SharedBitfieldBase(T value)
Constructor.
Definition: SharedBitfield.inl:10
T UnderlyingType
Propagate underlying type.
Definition: SharedBitfield.h:124
T m_value
The value of the SharedBitfield.
Definition: SharedBitfield.h:144
A representation of a bitfield value that could be member of multiple bitfield types as allowed in Op...
Definition: SharedBitfield.h:18
Contains all the classes of glbinding.
GLBINDING_API CallbackMask operator^(CallbackMask a, CallbackMask b)
External operator for bit-wise 'xor' of CallbackMasks.
GLBINDING_API CallbackMask & operator|=(CallbackMask &a, CallbackMask b)
External operator for bit-wise 'or' assignment of CallbackMasks.
GLBINDING_API CallbackMask & operator^=(CallbackMask &a, CallbackMask b)
External operator for bit-wise 'xor' assignment of CallbackMasks.
GLBINDING_API CallbackMask operator&(CallbackMask a, CallbackMask b)
External operator for bit-wise 'and' of CallbackMasks.
GLBINDING_API CallbackMask operator|(CallbackMask a, CallbackMask b)
External operator for bit-wise 'or' of CallbackMasks.
GLBINDING_API CallbackMask & operator&=(CallbackMask &a, CallbackMask b)
External operator for bit-wise 'and' assignment of CallbackMasks.
typename std::conditional<!is_member_of_SharedBitfield< T, OtherTypes... >::value, typename intersect_SharedBitfield< SharedBitfield< Types... >, SharedBitfield< OtherTypes... > >::type, typename prepend_to_SharedBitfield< T, typename intersect_SharedBitfield< SharedBitfield< Types... >, SharedBitfield< OtherTypes... > >::type >::type >::type type
Result of the intersection.
Definition: SharedBitfield.h:106
Break condition for the SharedBitfield intersection.
Definition: SharedBitfield.h:88
SharedBitfield<> type
Result of the intersection; always empty for non-overlapping SharedBitfield type lists.
Definition: SharedBitfield.h:89
Break condition for the is_member_of_SharedBitfield metaprogramming.
Definition: SharedBitfield.h:35
static const bool value
result of the inclusion test; always false since the list of types to test against is empty
Definition: SharedBitfield.h:36
Break condition for the SharedBitfield type concatenation.
Definition: SharedBitfield.h:64