ranges_random_access_range

ranges_random_access_range (임의 접근 범위 개념)

ranges::random_access_rangeranges::begin이 random_access_iterator를 모델링하는 값을 반환하는 range의 정제(개념)예요. C++20부터 사용할 수 있어요.

출처: cppreference

본문

<ranges> 헤더에 정의되어 있고, 시그니처는 다음과 같아요.

template< class T >
concept random_access_range =
    ranges::bidirectional_range<T> && std::random_access_iterator<ranges::iterator_t<T>>;

(since C++20)

random_access_range 개념은 ranges::begin이 random_access_iterator를 모델링하는 값을 반환하는 range의 정제예요.

예제 (Example)

이 코드를 실행해 봐요.

#include <array>
#include <deque>
#include <list>
#include <ranges>
#include <set>
#include <valarray>
#include <vector>

template<typename T> concept RAR = std::ranges::random_access_range<T>;

int main()
{
    int a[4];
    static_assert(
        RAR<std::deque<int>> and RAR<std::vector<int>> and
        RAR<std::array<int,4>> and RAR<int[4]> and RAR<std::valarray<int>> and
        not RAR<std::list<int>> and not RAR<std::set<int>>);
}

더 알아보기 (Learn more)

cppreference