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