18#include <QtCore/qendian.h>
19#include <QtCore/private/qglobal_p.h>
39template<
class S,
int pos,
int w
idth,
class T =
typename S::StorageType>
42template<
class S,
int pos,
int w
idth,
class T =
typename S::StorageType>
51 operator Type() const noexcept
53 if constexpr (std::is_signed_v<Type>) {
60 return (S::fromSpecial(storage->
val) &
mask()) >>
pos;
68 static_assert(
pos == 0);
76 template<
class Storage,
typename... Accessors>
85 return ((
i.storage->val ^
j.storage->val) & S::toSpecial(
mask())) == 0;
91 return ((
i.storage->val ^
j.storage->val) & S::toSpecial(
mask())) != 0;
97template<
class S,
int pos,
int w
idth,
class T>
112 storage->
val = S::toSpecial(
i);
119 template<
class Storage,
typename... Accessors>
127template<
class S,
typename... Accessors>
148 typename A::Type
get()
const
160 static constexpr bool isAccessor = std::disjunction_v<std::is_same<A, Accessors>...>;
165 static_assert(isAccessor<A>);
170 typename A::Const member()
const
172 static_assert(isAccessor<A>);
173 return typename A::Const(&storage);
179template<
typename T,
typename... Accessors>
183template<
typename T,
typename... Accessors>
187template<
typename... Accessors>
189template<
typename... Accessors>
191template<
typename... Accessors>
193template<
typename... Accessors>
196template<
int pos,
int w
idth,
typename T =
int>
199template<
int pos,
int w
idth,
typename T = u
int>
202template<
int pos,
int w
idth,
typename T =
int>
205template<
int pos,
int w
idth,
typename T = u
int>
QSpecialIntegerAccessor & operator=(Type t)
std::make_unsigned_t< T > UnsignedType
QSpecialIntegerStorage< S > Storage
QSpecialIntegerConstAccessor< S, pos, width, T > Const
void set(typename A::Type value)
constexpr QSpecialIntegerBitfieldUnion(QSpecialIntegerBitfieldInitializer initial)
QSpecialIntegerStorage< S >::UnsignedStorageType data() const
constexpr QSpecialIntegerBitfieldUnion(typename QSpecialIntegerStorage< S >::UnsignedStorageType initial)
constexpr QSpecialIntegerBitfieldUnion()=default
std::make_unsigned_t< T > UnsignedType
const QSpecialIntegerStorage< S > Storage
friend bool operator!=(const QSpecialIntegerConstAccessor< S, pos, width, T > &i, const QSpecialIntegerConstAccessor< S, pos, width, T > &j) noexcept
friend bool operator==(const QSpecialIntegerConstAccessor< S, pos, width, T > &i, const QSpecialIntegerConstAccessor< S, pos, width, T > &j) noexcept
static constexpr UnsignedType mask() noexcept
bool operator!() const noexcept
std::make_unsigned_t< typename S::StorageType > UnsignedStorageType
constexpr QSpecialIntegerStorage(QSpecialIntegerBitfieldInitializer)
constexpr QSpecialIntegerStorage(UnsignedStorageType initial)
constexpr QSpecialIntegerStorage()=default
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
QSpecialIntegerBitfieldInitializer
constexpr QSpecialIntegerBitfieldInitializer QSpecialIntegerBitfieldZero
GLint GLint GLint GLint GLint GLint GLint GLbitfield mask