29 template <
class Layout, iterator_types Iterator_types>
32 variable_size_binary_value_iterator<Layout, Iterator_types>,
33 typename Iterator_types::value_type,
34 typename Iterator_types::iterator_tag,
35 typename Iterator_types::reference>
42 typename Iterator_types::value_type,
43 typename Iterator_types::iterator_tag,
44 typename Iterator_types::reference>;
56 [[nodiscard]]
reference dereference() const;
62 [[nodiscard]]
bool equal(const
self_type& rhs) const;
63 [[nodiscard]]
bool less_than(const
self_type& rhs) const;
85 template <
class Layout, iterator_types Iterator_types>
86 auto variable_size_binary_value_iterator<Layout, Iterator_types>::dereference() const ->
reference
88 if constexpr (std::same_as<reference, typename Layout::inner_const_reference>)
90 return p_layout->value(
static_cast<size_type
>(m_index));
94 return reference(
const_cast<Layout*
>(p_layout),
static_cast<size_type
>(m_index));
98 template <
class Layout, iterator_types Iterator_types>
104 template <
class Layout, iterator_types Iterator_types>
110 template <
class Layout, iterator_types Iterator_types>
116 template <
class Layout, iterator_types Iterator_types>
120 return rhs.m_index - m_index;
123 template <
class Layout, iterator_types Iterator_types>
126 return (p_layout == rhs.p_layout) && (m_index == rhs.m_index);
129 template <
class Layout, iterator_types Iterator_types>
132 return (p_layout == rhs.p_layout) && (m_index < rhs.m_index);
mpl::constify_t< array_type, true > layout_type
typename base_type::difference_type difference_type
variable_size_binary_value_iterator< array_type, Iterator_types > self_type
typename base_type::reference reference
variable_size_binary_value_iterator() noexcept=default
iterator_base< self_type, typename Iterator_types::value_type, typename Iterator_types::iterator_tag, typename Iterator_types::reference > base_type
friend class iterator_access
base_type::value_type value_type
Concept for iterator types.
typename constify< T, is_const >::type constify_t