9struct enumerate_t : std::ranges::view_interface<enumerate_t<Rng>> {
16 using begin_t =
decltype(std::ranges::begin(std::as_const(
rng)));
17 using end_t =
decltype(std::ranges::end(std::as_const(
rng)));
28 using index_t = std::ranges::range_difference_t<Rng>;
55 auto begin() const -> std::input_or_output_iterator auto{
auto enumerate(Rng &&rng)
std::tuple< index_t, decltype(*it)> value_type
friend bool operator==(sentinel_t s, const iter_t &i)
friend bool operator!=(sentinel_t s, const iter_t &i)
std::ranges::range_difference_t< Rng > index_t
bool operator!=(sentinel_t s) const
value_type operator*() const
std::ptrdiff_t difference_type
bool operator==(sentinel_t s) const
iter_t operator++(int) const
auto begin() const -> std::input_or_output_iterator auto
decltype(std::ranges::end(std::as_const(rng))) end_t
decltype(std::ranges::begin(std::as_const(rng))) begin_t