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]] constexpr
reference dereference() const;
58 constexpr
void increment() noexcept;
59 constexpr
void decrement() noexcept;
62 [[nodiscard]] constexpr
bool equal(const
self_type& rhs) const noexcept;
63 [[nodiscard]] constexpr
bool less_than(const
self_type& rhs) const noexcept;
85 template <
class Layout, iterator_types Iterator_types>
86 constexpr 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>
117 template <
class Layout, iterator_types Iterator_types>
122 return rhs.m_index - m_index;
125 template <
class Layout, iterator_types Iterator_types>
129 return (p_layout == rhs.p_layout) && (m_index == rhs.m_index);
132 template <
class Layout, iterator_types Iterator_types>
136 return (p_layout == rhs.p_layout) && (m_index < rhs.m_index);
mpl::constify_t< Layout, true > layout_type
typename base_type::difference_type difference_type
variable_size_binary_value_iterator< Layout, Iterator_types > self_type
typename base_type::reference reference
iterator_base< self_type, typename Iterator_types::value_type, typename Iterator_types::iterator_tag, typename Iterator_types::reference > base_type
constexpr variable_size_binary_value_iterator() noexcept=default
friend class iterator_access
base_type::value_type value_type
Concept for iterator types.
typename constify< T, is_const >::type constify_t
Convenience alias for constify.