|  | 
| template<typename Rng > requires viewable_range<Rng> && (forward_range<Rng> || (input_range<Rng> && sized_range<Rng>))
 | 
| auto | operator() (Rng &&rng, detail::from_end_of_t< Rng > from, detail::from_end_of_t< Rng > to) const | 
|  | 
| template<typename Rng > requires viewable_range<Rng> && (forward_range<Rng> || (input_range<Rng> && sized_range<Rng>))
 | 
| auto | operator() (Rng &&rng, detail::from_end_of_t< Rng > from, end_fn) const | 
|  | 
| template<typename Rng > requires viewable_range<Rng> && input_range<Rng> && sized_range<Rng>
 | 
| auto | operator() (Rng &&rng, range_difference_t< Rng > from, detail::from_end_of_t< Rng > to) const | 
|  | 
| template<typename Rng > requires viewable_range<Rng> && input_range<Rng>
 | 
| auto | operator() (Rng &&rng, range_difference_t< Rng > from, end_fn) const | 
|  | 
| template<typename Rng > requires viewable_range<Rng> && input_range<Rng>
 | 
| constexpr auto | operator() (Rng &&rng, range_difference_t< Rng > from, range_difference_t< Rng > to) const | 
|  |