32 template <std::
integral T>
43 template <std::ranges::input_range R>
44 requires std::convertible_to<std::ranges::range_value_t<R>,
value_type>
81 template <
std::integral T>
88 template <std::
integral T>
95 template <std::
integral T>
106 template <std::
integral T>
113 template <std::
integral T>
129 if (bitmap.
size() == 0)
138 if (bitmap.size() == 0)
140 bitmap.resize(size,
true);
142 return std::move(bitmap);
146 template <std::ranges::input_range R>
147 requires(std::same_as<std::ranges::range_value_t<R>,
bool>)
153 for (
auto value : range)
157 bitmap.
set(i,
false);
165 template <std::ranges::input_range R>
167 std::unsigned_integral<std::ranges::range_value_t<R>>
168 && !std::same_as<std::ranges::range_value_t<R>,
bool>
174 for (
auto index : range_of_indices)
176 bitmap.
set(index,
false);
184 || (std::ranges::input_range<T>
185 && std::same_as<std::ranges::range_value_t<T>,
bool>)
186 || (std::ranges::input_range<T>
187 && std::unsigned_integral<std::ranges::range_value_t<T>>) )
188 && (!std::same_as<std::remove_cvref_t<T>, std::string>
189 && !std::same_as<std::remove_cvref_t<T>, std::string_view>
190 && !std::same_as<std::decay_t<T>,
const char*>);
192 template <val
idity_bitmap_input R>
typename storage_type_without_cvrefpointer::value_type block_type
size_type count_non_null() const noexcept
typename storage_type_without_cvrefpointer::size_type size_type
constexpr void zero_unused_bits()
constexpr size_type null_count() const noexcept
static constexpr size_type compute_block_count(size_type bits_count) noexcept
constexpr size_type size() const noexcept
constexpr void set(size_type pos, value_type value)
constexpr dynamic_bitset_base(storage_type buffer, size_type size)
This class represents a dynamic size sequence of bits.
constexpr void pop_back()
constexpr dynamic_bitset(dynamic_bitset &&) noexcept=default
constexpr void clear() noexcept
constexpr dynamic_bitset(size_type n)
constexpr dynamic_bitset(size_type n, value_type v)
constexpr void resize(size_type n, value_type b=false)
typename base_type::block_type block_type
constexpr dynamic_bitset(const dynamic_bitset &)=default
constexpr dynamic_bitset()
constexpr void push_back(value_type value)
constexpr iterator erase(const_iterator pos)
constexpr dynamic_bitset(block_type *p, size_type n, size_type null_count)
dynamic_bitset_base< buffer< T > > base_type
typename base_type::storage_type storage_type
constexpr dynamic_bitset(block_type *p, size_type n)
constexpr iterator insert(const_iterator pos, value_type value)
constexpr iterator emplace(const_iterator pos, value_type value)
dynamic_bitset(const R &r)
typename base_type::value_type value_type
typename base_type::size_type size_type
constexpr ~dynamic_bitset()=default
#define SPARROW_ASSERT_TRUE(expr__)
sparrow::validity_bitmap validity_bitmap
validity_bitmap ensure_validity_bitmap_impl(std::size_t size, const validity_bitmap &bitmap)
dynamic_bitset< std::uint8_t > validity_bitmap
validity_bitmap ensure_validity_bitmap(std::size_t size, R &&validity_input)
std::size_t range_size(R &&r)