ranges_bidirectional_range

ranges_bidirectional_range (양방향 범위 개념)

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

출처: cppreference

본문

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

template< class T >
concept bidirectional_range =
    ranges::forward_range<T> && std::bidirectional_iterator<ranges::iterator_t<T>>;

(since C++20)

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

예제 (Example)

이 코드를 실행해 봐요.

#include <forward_list>
#include <list>
#include <ranges>
#include <set>
#include <unordered_set>

int main()
{
    static_assert(
            std::ranges::bidirectional_range<std::set<int>> and
        not std::ranges::bidirectional_range<std::unordered_set<int>>);
}

더 알아보기 (Learn more)

cppreference