10 Ranges library [ranges]

10.6 Range requirements [ranges.requirements]

10.6.10 Random access ranges [ranges.random.access]

The RandomAccessRange concept specifies requirements of a BidirectionalRange type for which begin returns a type that satisfies RandomAccessIterator ([iterators.random.access]).

template <class T>
concept bool RandomAccessRange =
  BidirectionalRange<T> && RandomAccessIterator<iterator_t<T>>;