std::ranges::ContiguousRange

< cpp‎ | ranges
Defined in header <ranges>
template<class T>

  concept ContiguousRange =
    RandomAccessRange<T> && ContiguousIterator<iterator_t<T>> &&
    requires(T& t) {
      { ranges::data(t) } -> Same<std::add_pointer_t<iter_reference_t<iterator_t<T>>>>;

    };

The ContiguousRange concept is a refinement of Range for which ranges::begin returns a model of ContiguousIterator and the customization point ranges::data is usable.