64 template <std::
integral T, null_count_policy NCP = tracking_null_count<>>
208 template <std::
integral T, null_count_policy NCP>
214 template <std::
integral T, null_count_policy NCP>
225 template <std::
integral T, null_count_policy NCP>
229 if (start + length > this->
size())
231 throw std::out_of_range(
"slice_view: start + length exceeds bitset size");
237 if constexpr (NCP::track_null_count)
242 if (!this->
test(start + i))
255 template <std::
integral T, null_count_policy NCP>
258 if (start > this->
size())
260 throw std::out_of_range(
"slice_view: start exceeds bitset size");
typename storage_type_without_cvrefpointer::value_type block_type
constexpr block_type * data() noexcept
buffer_view< T > storage_type
static constexpr size_type compute_block_count(size_type bits_count) noexcept
constexpr bool test(size_type pos) const
constexpr size_type size() const noexcept
typename storage_type_without_cvrefpointer::size_type size_type
constexpr dynamic_bitset_base(storage_type buffer, size_type size)
constexpr size_type null_count() const noexcept
constexpr size_type offset() const noexcept
constexpr dynamic_bitset_view(block_type *p, size_type n, size_type offset, size_type null_count)
Constructs a bitset view from external memory with null count and offset.
constexpr dynamic_bitset_view(block_type *p, size_type n)
Constructs a bitset view from external memory.
typename base_type::storage_type storage_type
constexpr dynamic_bitset_view(block_type *p, size_type n, size_type offset)
Constructs a bitset view from external memory with null count tracking.
dynamic_bitset_base< buffer_view< T >, tracking_null_count<> > base_type
constexpr dynamic_bitset_view(dynamic_bitset_view &&) noexcept=default
typename base_type::size_type size_type
constexpr dynamic_bitset_view slice_view(size_type start, size_type length) const
constexpr dynamic_bitset_view(const dynamic_bitset_view &)=default
typename base_type::block_type block_type
constexpr ~dynamic_bitset_view()=default
Concept that checks if a type is a valid null count policy.
Extensions to the C++ standard library.