A representation of a bitfield value that could be member of multiple bitfield types as allowed in OpenGL.
More...
|
template<typename ConstructionType > |
GLBINDING_CONSTEXPR | SharedBitfield (ConstructionType value) |
| Constructor. More...
|
|
GLBINDING_CONSTEXPR | SharedBitfield (typename std::underlying_type< Type >::type value) |
| Constructor. More...
|
|
GLBINDING_CONSTEXPR | operator Type () const |
| Cast operator to allow for conversion of the generic value to a specific bitfield type. More...
|
|
template<typename... T> |
GLBINDING_CONSTEXPR auto | operator| (SharedBitfield< T... > other) const -> typename std::enable_if<!std::is_same< typename intersect_SharedBitfield< SharedBitfield< Type, Types... >, SharedBitfield< T... >>::type, SharedBitfield<>>::value, typename intersect_SharedBitfield< SharedBitfield< Type, Types... >, SharedBitfield< T... >>::type >::type |
| Performs a bit-wise 'or' operation on the values of this and other while constraining the resulting shared bitfield types to the intersection. More...
|
|
template<typename... T> |
auto | operator|= (SharedBitfield< T... > other) -> typename std::enable_if<!std::is_same< typename intersect_SharedBitfield< SharedBitfield< Type, Types... >, SharedBitfield< T... >>::type, SharedBitfield<>>::value, SharedBitfield & >::type |
| Performs a bit-wise 'or' assignment operation on the values of this and other, where type list of the right hand side has to be a superset of the types list of this SharedBitfield. More...
|
|
template<typename... T> |
GLBINDING_CONSTEXPR auto | operator& (SharedBitfield< T... > other) const -> typename std::enable_if<!std::is_same< typename intersect_SharedBitfield< SharedBitfield< Type, Types... >, SharedBitfield< T... >>::type, SharedBitfield<>>::value, typename intersect_SharedBitfield< SharedBitfield< Type, Types... >, SharedBitfield< T... >>::type >::type |
| Performs a bit-wise 'and' operation on the values of this and other while constraining the resulting shared bitfield types to the intersection. More...
|
|
template<typename... T> |
auto | operator&= (SharedBitfield< T... > other) -> typename std::enable_if<!std::is_same< typename intersect_SharedBitfield< SharedBitfield< Type, Types... >, SharedBitfield< T... >>::type, SharedBitfield<>>::value, SharedBitfield & >::type |
| Performs a bit-wise 'and' assignment operation on the values of this and other, where type list of the right hand side has to be a superset of the types list of this SharedBitfield. More...
|
|
template<typename... T> |
GLBINDING_CONSTEXPR auto | operator^ (SharedBitfield< T... > other) const -> typename std::enable_if<!std::is_same< typename intersect_SharedBitfield< SharedBitfield< Type, Types... >, SharedBitfield< T... >>::type, SharedBitfield<>>::value, typename intersect_SharedBitfield< SharedBitfield< Type, Types... >, SharedBitfield< T... >>::type >::type |
| Performs a bit-wise 'xor' operation on the values of this and other while constraining the resulting shared bitfield types to the intersection. More...
|
|
template<typename... T> |
auto | operator^= (SharedBitfield< T... > other) -> typename std::enable_if<!std::is_same< typename intersect_SharedBitfield< SharedBitfield< Type, Types... >, SharedBitfield< T... >>::type, SharedBitfield<>>::value, SharedBitfield & >::type |
| Performs a bit-wise 'xor' assignment operation on the values of this and other, where type list of the right hand side has to be a superset of the types list of this SharedBitfield. More...
|
|
template<typename... T> |
GLBINDING_CONSTEXPR auto | operator== (SharedBitfield< T... > other) const -> typename std::enable_if<!std::is_same< typename intersect_SharedBitfield< SharedBitfield< Type, Types... >, SharedBitfield< T... >>::type, SharedBitfield<>>::value, bool >::type |
| Test for equality of the values of this SharedBitfield and the other SharedBitfield. More...
|
|
template<typename T > |
GLBINDING_CONSTEXPR auto | operator== (T other) const -> typename std::enable_if< is_member_of_SharedBitfield< T, Type, Types... >::value, bool >::type |
| Test for equality of the value of this SharedBitfield and the other bitfield value. More...
|
|
template<typename Type, typename... Types>
class glbinding::SharedBitfield< Type, Types... >
A representation of a bitfield value that could be member of multiple bitfield types as allowed in OpenGL.
- Template Parameters
-
Type | The head of valid bitfields type for the given value |
Types | The tail of valid bitfields type for the given value |