ranges_random_access_range
ranges_random_access_range (임의 접근 범위 개념)
ranges::random_access_range은 ranges::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>>);
}