std::ranges::random_access_range - cppreference.com

From cppreference.com

template<classT>conceptrandom_access_range=ranges::bidirectional_range<T>&&std::random_access_iterator<ranges::iterator_t<T>>;(since C++20)The random_access_range concept is a refinement of

range

for which ranges::begin returns a model of

random_access_iterator

.

Example

Run this code

#include<array>#include<deque>#include<list>#include<ranges>#include<set>#include<valarray>#include<vector>template<typenameT>conceptRAR=std::ranges::random_access_range<T>;intmain(){inta[4];static_assert(RAR<std::vector<int>>andRAR<std::vector<bool>>andRAR<std::deque<int>>andRAR<std::valarray<int>>andRAR<decltype(a)>andnotRAR<std::list<int>>andnotRAR<std::set<int>>andRAR<std::array<std::list<int>,42>>);}See also