glbinding
2.0.0.00e2ff521289
A C++ binding for the OpenGL API, generated using the gl.xml specification.
|
A representation of a bitfield value that could be member of multiple bitfield types as allowed in OpenGL. This template is the break condition of a former SharedBitfield that got reduced to just one valid bitfield type through operations. More...
#include <glbinding/include/glbinding/SharedBitfield.h>
Public Types | |
using | UnderlyingType = typename SharedBitfieldBase< typename std::underlying_type< Type >::type >::UnderlyingType |
inherit UnderlyingType declaration More... | |
Public Member Functions | |
template<typename ConstructionType > | |
SharedBitfield (ConstructionType value) | |
Constructor. More... | |
SharedBitfield (typename std::underlying_type< Type >::type value) | |
Constructor. More... | |
operator Type () const | |
Cast operator to allow for conversion of the generic value to a specific bitfield type. More... | |
template<typename... T> | |
auto | operator| (SharedBitfield< T... > other) const -> typename std::enable_if<!std::is_same< typename intersect_SharedBitfield< SharedBitfield, SharedBitfield< T... >>::type, SharedBitfield<>>::value, typename intersect_SharedBitfield< SharedBitfield, 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, 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> | |
auto | operator& (SharedBitfield< T... > other) const -> typename std::enable_if<!std::is_same< typename intersect_SharedBitfield< SharedBitfield, SharedBitfield< T... >>::type, SharedBitfield<>>::value, typename intersect_SharedBitfield< SharedBitfield, 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, 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> | |
auto | operator^ (SharedBitfield< T... > other) const -> typename std::enable_if<!std::is_same< typename intersect_SharedBitfield< SharedBitfield, SharedBitfield< T... >>::type, SharedBitfield<>>::value, typename intersect_SharedBitfield< SharedBitfield, 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, 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> | |
auto | operator== (SharedBitfield< T... > other) const -> typename std::enable_if<!std::is_same< typename intersect_SharedBitfield< SharedBitfield, SharedBitfield< T... >>::type, SharedBitfield<>>::value, bool >::type |
Test for equality of the values of this SharedBitfield and the other SharedBitfield. More... | |
template<typename T > | |
auto | operator== (T other) const -> typename std::enable_if< is_member_of_SharedBitfield< T, Type >::value, bool >::type |
Test for equality of the value of this SharedBitfield and the other bitfield value. More... | |
A representation of a bitfield value that could be member of multiple bitfield types as allowed in OpenGL. This template is the break condition of a former SharedBitfield that got reduced to just one valid bitfield type through operations.
Type | The one valid bitfield type for the given value. |
using glbinding::SharedBitfield< Type >::UnderlyingType = typename SharedBitfieldBase<typename std::underlying_type<Type>::type>::UnderlyingType |
inherit UnderlyingType declaration
glbinding::SharedBitfield< Type >::SharedBitfield | ( | ConstructionType | value | ) |
Constructor.
ConstructionType | The type of the passed value which is implicitly convertible to the UnderlyingType. |
[in] | value | The value of this SharedBitfield. |
glbinding::SharedBitfield< Type >::SharedBitfield | ( | typename std::underlying_type< Type >::type | value | ) |
Constructor.
[in] | value | The value of this SharedBitfield. |
glbinding::SharedBitfield< Type >::operator Type | ( | ) | const |
Cast operator to allow for conversion of the generic value to a specific bitfield type.
auto glbinding::SharedBitfield< Type >::operator| | ( | SharedBitfield< T... > | other | ) | const -> typename std::enable_if<!std::is_same<typename intersect_SharedBitfield<SharedBitfield, SharedBitfield<T...>>::type, SharedBitfield<>>::value, typename intersect_SharedBitfield<SharedBitfield, 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.
[in] | other | The SharedBitfield instance to operate with. |
This method is not visible to the compiler if the operands don't share any bitfield type (the intersection is empty) and thus results in a compiler error.
auto glbinding::SharedBitfield< Type >::operator|= | ( | SharedBitfield< T... > | other | ) | -> typename std::enable_if<!std::is_same<typename intersect_SharedBitfield<SharedBitfield, 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.
[in] | other | The SharedBitfield instance to operate with. |
This method is not visible to the compiler if the operands don't share any bitfield type (the intersection is empty) and thus results in a compiler error.
auto glbinding::SharedBitfield< Type >::operator& | ( | SharedBitfield< T... > | other | ) | const -> typename std::enable_if<!std::is_same<typename intersect_SharedBitfield<SharedBitfield, SharedBitfield<T...>>::type, SharedBitfield<>>::value, typename intersect_SharedBitfield<SharedBitfield, 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.
[in] | other | The SharedBitfield instance to operate with. |
This method is not visible to the compiler if the operands don't share any bitfield type (the intersection is empty) and thus results in a compiler error.
auto glbinding::SharedBitfield< Type >::operator&= | ( | SharedBitfield< T... > | other | ) | -> typename std::enable_if<!std::is_same<typename intersect_SharedBitfield<SharedBitfield, 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.
[in] | other | The SharedBitfield instance to operate with. |
This method is not visible to the compiler if the operands don't share any bitfield type (the intersection is empty) and thus results in a compiler error.
auto glbinding::SharedBitfield< Type >::operator^ | ( | SharedBitfield< T... > | other | ) | const -> typename std::enable_if<!std::is_same<typename intersect_SharedBitfield<SharedBitfield, SharedBitfield<T...>>::type, SharedBitfield<>>::value, typename intersect_SharedBitfield<SharedBitfield, 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.
[in] | other | The SharedBitfield instance to operate with. |
This method is not visible to the compiler if the operands don't share any bitfield type (the intersection is empty) and thus results in a compiler error.
auto glbinding::SharedBitfield< Type >::operator^= | ( | SharedBitfield< T... > | other | ) | -> typename std::enable_if<!std::is_same<typename intersect_SharedBitfield<SharedBitfield, 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.
[in] | other | The SharedBitfield instance to operate with. |
This method is not visible to the compiler if the operands don't share any bitfield type (the intersection is empty) and thus results in a compiler error.
auto glbinding::SharedBitfield< Type >::operator== | ( | SharedBitfield< T... > | other | ) | const -> typename std::enable_if<!std::is_same<typename intersect_SharedBitfield<SharedBitfield, SharedBitfield<T...>>::type, SharedBitfield<>>::value, bool>::type |
Test for equality of the values of this SharedBitfield and the other SharedBitfield.
[in] | other | The SharedBitfield instance to operate with. |
This method is not visible to the compiler if the operands don't share any bitfield type (the intersection is empty) and thus results in a compiler error.
auto glbinding::SharedBitfield< Type >::operator== | ( | T | other | ) | const -> typename std::enable_if<is_member_of_SharedBitfield<T, Type>::value, bool>::type |
Test for equality of the value of this SharedBitfield and the other bitfield value.
T | The bitfield type of the value to test |
[in] | other | The bitfield value to operate with.. |
This method is not visible to the compiler if the this SharedBitfield type list contains the type T.