ranges_bidirectional_range
ranges_bidirectional_range (양방향 범위 개념)
ranges::bidirectional_range은 ranges::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>>);
}