24#ifndef MYSQL_RANGES_ITERATOR_WITH_RANGE_H
25#define MYSQL_RANGES_ITERATOR_WITH_RANGE_H
46template <std::ranges::range Range_tp>
48 Iterator_with_range<Range_tp>> {
68 requires std::contiguous_iterator<Range_tp>
82 requires std::random_access_iterator<Iterator_t>
93 requires std::random_access_iterator<Iterator_t>
CRTP base class (mixin) that makes your class a standard-compliant iterator, given only a minimal set...
Definition: iterator_interface.h:370
Iterator that holds a reference to its source range.
Definition: iterator_with_range.h:48
auto & iterator()
Definition: iterator_with_range.h:100
Iterator_with_range(const Range_t &range)
Construct a new object from the given range, and set the iterator to the beginning.
Definition: iterator_with_range.h:62
void advance(std::ptrdiff_t delta)
Definition: iterator_with_range.h:81
void next()
Definition: iterator_with_range.h:73
View_source< Range_t > m_range
Range object.
Definition: iterator_with_range.h:107
std::ptrdiff_t distance_from(const Iterator_with_range &other) const
Definition: iterator_with_range.h:91
Range_tp Range_t
Definition: iterator_with_range.h:50
decltype(auto) get() const
Definition: iterator_with_range.h:65
const auto & range() const
Definition: iterator_with_range.h:99
bool is_end() const
Definition: iterator_with_range.h:103
auto & range()
Definition: iterator_with_range.h:98
Iterator_t m_iterator
Iterator into the range.
Definition: iterator_with_range.h:110
void prev()
Definition: iterator_with_range.h:75
const auto & iterator() const
Definition: iterator_with_range.h:101
Iterator_with_range(const Range_t &range, const Iterator_t &iterator)
Construct a new object from the given range, and set the iterator to the beginning.
Definition: iterator_with_range.h:58
Iterator_with_range()=default
Construct a singular object.
bool is_equal(const Iterator_with_range &other) const
Definition: iterator_with_range.h:87
Range_const_iterator_type< Range_t > Iterator_t
Definition: iterator_with_range.h:51
decltype(auto) get_pointer() const
Definition: iterator_with_range.h:67
auto end() const
Return end iterator to the source.
Definition: view_sources.h:158
Definition: buffer_interface.h:40
std::remove_cvref_t< decltype(std::declval< const Range_t >().begin())> Range_const_iterator_type
Gives the const_iterator type, deduced from the begin() const member.
Definition: meta.h:47
const char * begin(const char *const c)
Definition: base64.h:44
Define std::hash<Gtid>.
Definition: gtid.h:355
Definition: gen_lex_token.cc:149