The BidirectionalRange concept specifies requirements of a ForwardRange type for which begin returns a type that satisfies BidirectionalIterator ([iterators.bidirectional]).
template <class T> concept bool BidirectionalRange = ForwardRange<T> && BidirectionalIterator<iterator_t<T>>;