21 template<
typename T,
typename T_ValueMask>
32 constexpr operator bool() const noexcept
34 if constexpr(std::is_same_v<ValueMaskType, bool>)
53 return !
static_cast<bool>(*this);
58 if constexpr(std::is_same_v<ValueMaskType, bool>)
77 if constexpr(std::is_same_v<ValueMaskType, bool>)
78 return static_cast<bool>(*
this) !=
static_cast<bool>(rhs);
86 return static_cast<bool>(*this) ==
static_cast<bool>(rhs);
91 return !(*
this == rhs);
94#define SIMD_MASK_REF_ASSIGN_OP(OP, BOOL_FALLBACK) \
95 constexpr SmartMaskValueRef& operator OP(bool b) noexcept \
97 return (*this OP internal::valueMaskCast<ValueMaskType>(b)); \
100 constexpr SmartMaskValueRef& operator OP(ValueMaskType v) noexcept \
102 if constexpr(std::is_same_v<ValueMaskType, bool>) \
104 valueRef = valueRef BOOL_FALLBACK static_cast<bool>(v); \
119#undef SIMD_MASK_REF_ASSIGN_OP
#define SIMD_MASK_REF_ASSIGN_OP(OP, BOOL_FALLBACK)
alpaka internal implementations.
constexpr ValueMaskType operator&(SmartMaskValueRef const &rhs) const noexcept
constexpr bool operator!=(SmartMaskValueRef const &rhs) const noexcept
constexpr bool operator==(SmartMaskValueRef const &rhs) const noexcept
constexpr ValueMaskType value() const noexcept
constexpr ValueMaskType operator|(SmartMaskValueRef const &rhs) const noexcept
constexpr ValueMaskType operator^(SmartMaskValueRef const &rhs) const noexcept
constexpr bool operator!() const noexcept
constexpr SmartMaskValueRef(ValueMaskType &ref) noexcept
ValueMaskType ValueMaskType
constexpr ValueMaskType operator~() const noexcept