# std::experimental::ranges::RandomAccessIterator

From cppreference.com
< cpp‎ | experimental‎ | ranges

Defined in header `<experimental/ranges/iterator>` |  |

template <class I>

concept bool RandomAccessIterator() {
return ranges::BidirectionalIterator<I>()
&& ranges::DerivedFrom<ranges::iterator_category_t<I>,
ranges::random_access_iterator_tag>()
&& ranges::StrictTotallyOrdered<I>()
&& ranges::SizedSentinel<I, I>()
&& requires(I i, const I j, const ranges::difference_type_t<I> n) {
{ i += n } -> ranges::Same<I&>;
{ j + n } -> ranges::Same<I>;
{ n + j } -> ranges::Same<I>;
{ i -= n } -> ranges::Same<I&>;
{ j - n } -> ranges::Same<I>;
{ j[n] } -> ranges::Same<ranges::reference_t<I>>;
};

}

(ranges TS)

| This section is incomplete Reason: add description and extra caveats

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/experimental/ranges/iterator/RandomAccessIterator&oldid=89714"
Category:

- Todo with reason