template<Iterator I, Sentinel<I> S>
constexpr iter_difference_t<I> ranges::distance(I first, S last);
template<Range R>
constexpr iter_difference_t<iterator_t<R>> ranges::distance(R&& r);
return ranges::distance(ranges::begin(r), ranges::end(r)); // [range.access]