18#if !defined(GPUCA_GPUCODE_DEVICE) && !defined(GPUCA_GPUCODE_COMPILEKERNELS)
22template <
class T,
class S>
61 template <
typename... Args>
62 void set(T
v, Args... args)
68 operator bool()
const {
return bits; }
69 operator S()
const {
return bits; }
72 template <
typename... Args>
77 template <
typename... Args>
82 template <
typename... Args>
87 template <
typename... Args>
95#if !defined(GPUCA_GPUCODE_DEVICE)
96 static_assert(std::is_integral<S>::value,
"Storage type non integral");
97 static_assert(
sizeof(
S) >=
sizeof(T),
"Storage type has insufficient capacity");
bitfield & operator&=(const bitfield v)
void set(T v, Args... args)
bool operator==(const bitfield v)
bool isSet(const S v) const
bitfield(const bitfield &)=default
bool operator!=(const bitfield v)
bool operator==(const T v)
bitfield operator&(const T v) const
bitfield operator|(const T v) const
bitfield operator|(const bitfield v) const
bitfield & setBits(const bitfield v, bool w)
bitfield & operator=(const bitfield &)=default
bitfield operator~() const
bool isSetAll(Args... args)
bitfield & operator|=(const bitfield v)
bool isSetAny(Args... args)
static bitfield lor(const Args &... args)
bool isOnlySet(Args... args)
bool isSet(const bitfield &v) const
bitfield operator&(const bitfield v) const
bool operator!=(const T v)
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const void * bits
GLubyte GLubyte GLubyte GLubyte w