10 Ranges library [ranges]

10.6 Range requirements [ranges.requirements]

10.6.8 Forward ranges [ranges.forward]

The ForwardRange concept specifies requirements of an InputRange type for which begin returns a type that satisfies ForwardIterator ([iterators.forward]).

template <class T>
concept bool ForwardRange =
  InputRange<T> && ForwardIterator<iterator_t<T>>;