26#ifndef MYSQL_HARNESS_STDX_RANGES_ENUMERATE_H
27#define MYSQL_HARNESS_STDX_RANGES_ENUMERATE_H
88 using Base = std::conditional_t<Const, const V, V>;
94 using reference = std::tuple<index_type, range_reference_t<Base>>;
95 using value_type = std::tuple<index_type, range_value_t<Base>>;
98 : pos_{pos}, current_{
std::move(current)} {}
111 constexpr decltype(
auto)
operator*()
const {
141template <class T, class TIter = decltype(std::begin(std::declval<T>())),
142 class = decltype(
std::
end(std::declval<T>()))>
156template <std::ranges::input_range Range,
typename T>
157 requires std::convertible_to<T, typename Range::value_type>
bool
166namespace views = ranges::views;
std::input_iterator_tag iterator_category
Definition: ranges.h:91
size_t index_type
Definition: ranges.h:93
constexpr iterator & operator++()
Definition: ranges.h:104
std::tuple< index_type, range_reference_t< Base > > reference
Definition: ranges.h:94
iterator_t< Base > current_
Definition: ranges.h:118
index_type pos_
Definition: ranges.h:116
std::tuple< index_type, range_value_t< Base > > value_type
Definition: ranges.h:95
constexpr bool operator!=(const iterator &other) const
Definition: ranges.h:100
std::conditional_t< Const, const V, V > Base
Definition: ranges.h:88
constexpr iterator(iterator_t< Base > current, index_type pos)
Definition: ranges.h:97
enumerate_view over a range.
Definition: ranges.h:60
constexpr auto end() const
Definition: ranges.h:78
V Base
Definition: ranges.h:62
Base base_
Definition: ranges.h:64
constexpr enumerate_view(V base)
Definition: ranges.h:74
constexpr auto begin() const
Definition: ranges.h:76
stdx::iter_value_t< iterator< true > > value_type
Definition: ranges.h:70
constexpr enumerate_view()=default
Definition: atomics_array.h:39
std::pair< os_offset_t, os_offset_t > Range
Represents the chunk in bytes : first element represents the beginning offset of the chunk and,...
Definition: ddl0impl-file-reader.h:44
Container::const_iterator find(const Container &c, Value &&value)
Definition: generic.h:39
const char * begin(const char *const c)
Definition: base64.h:44
Cursor end()
A past-the-end Cursor.
Definition: rules_table_service.cc:192
Definition: gcs_xcom_synode.h:64
constexpr auto enumerate(T &&iterable)
Definition: ranges.h:143
stdx::iter_value_t< ranges::iterator_t< R > > range_value_t
Definition: ranges.h:47
enumerate_view(R &&) -> enumerate_view< R >
bool contains(const Range &container, const T &needle)
Checks if a container contains a specified element.
Definition: ranges.h:158
decltype(std::begin(std::declval< T & >())) iterator_t
Definition: ranges.h:44
stdx::iter_reference_t< ranges::iterator_t< R > > range_reference_t
Definition: ranges.h:50
typename indirectly_readable_traits< std::remove_cvref_t< T > >::value_type iter_value_t
Definition: iterator.h:130
typename impl::iter_reference< std::remove_cvref_t< T > >::reference iter_reference_t
Definition: iterator.h:134