|  | 
| template<typename I > requires random_access_iterator<I>
 | 
| static void | advance (I &it, iter_difference_t< I > n) | 
|  | 
| template<typename Rng > | 
| static constexpr auto | begin (Rng &rng) noexcept(noexcept(decltype(ranges::begin(rng.base()))(ranges::begin(rng.base())))) -> decltype(ranges::begin(rng.base())) | 
|  | 
| template<typename I > requires sized_sentinel_for<I, I>
 | 
| static iter_difference_t< I > | distance_to (I const &it0, I const &it1) | 
|  | 
| template<typename I , typename S > requires sentinel_for<S, I>
 | 
| static constexpr bool | empty (I const &it, S const &last) | 
|  | 
| template<typename Rng > | 
| static constexpr auto | end (Rng &rng) noexcept(noexcept(decltype(ranges::end(rng.base()))(ranges::end(rng.base())))) -> decltype(ranges::end(rng.base())) | 
|  | 
| template<typename I > requires equality_comparable<I>
 | 
| static bool | equal (I const &it0, I const &it1) | 
|  | 
| template<typename I > requires input_or_output_iterator<I>
 | 
| static void | next (I &it) | 
|  | 
| template<typename I > requires bidirectional_iterator<I>
 | 
| static void | prev (I &it) | 
|  | 
| template<typename I > requires input_or_output_iterator<I>
 | 
| static iter_reference_t< I > | read (I const &it, detail::adaptor_base_current_mem_fn={}) noexcept(noexcept(iter_reference_t< I >(*it))) | 
|  |