20 template <
class B,
bool is_const>
45 constexpr operator
bool() const noexcept;
47 constexpr
bool operator~() const noexcept;
55 using block_type = typename B::block_type;
56 using bitset_type = B;
60 constexpr
void assign(
bool) noexcept;
61 constexpr
void set() noexcept;
62 constexpr
void reset() noexcept;
64 bitset_type& m_bitset;
69 template <typename RAR>
70 requires
std::ranges::random_access_range<
std::remove_pointer_t<RAR>>
74 template <class B1, class B2>
104 if (m_bitset.data() ==
nullptr)
108 return (m_block & m_mask) != 0;
114 return (m_block & m_mask) == 0;
142 bool old_value = m_block & m_mask;
144 m_bitset.update_null_count(old_value, !old_value);
158 constexpr void bitset_reference<B>::assign(
bool rhs)
noexcept
160 rhs ? set() : reset();
164 constexpr void bitset_reference<B>::set() noexcept
166 bool old_value = m_block & m_mask;
168 m_bitset.update_null_count(old_value, m_block & m_mask);
172 constexpr void bitset_reference<B>::reset() noexcept
174 bool old_value = m_block & m_mask;
176 m_bitset.update_null_count(old_value, m_block & m_mask);
179 template <
class B1,
class B2>
182 return bool(lhs) == bool(rhs);
188 return bool(lhs) == rhs;
Iterator used to iterate over the bits of a dynamic bitset as if they were addressable values.
Reference proxy used by the bitset_iterator class to make it possible to assign a bit of a bitset as ...
constexpr bitset_reference(const bitset_reference &) noexcept=default
constexpr self_type & operator=(const self_type &) noexcept
constexpr self_type & operator|=(bool) noexcept
bitset_reference< B > self_type
constexpr bitset_reference(bitset_reference &&) noexcept=default
constexpr self_type & operator^=(bool) noexcept
friend class dynamic_bitset_base
constexpr bool operator~() const noexcept
constexpr self_type & operator&=(bool) noexcept
SPARROW_API bool operator==(const array &lhs, const array &rhs)
Compares the content of two arrays.