ranges_common_range

ranges_common_range (공통 범위 개념)

ranges::common_rangestd::ranges::begin()std::ranges::end()가 같은 타입을 반환하는 range의 정제(개념)예요. C++20부터 사용할 수 있어요.

출처: cppreference

본문

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

template< class T >
concept common_range =
    ranges::range<T> && std::same_as<ranges::iterator_t<T>, ranges::sentinel_t<T>>;

(since C++20)

common_range 개념은 std::ranges::begin()std::ranges::end()가 같은 타입을 반환하는 range의 정제예요 (예: 모든 표준 라이브러리 컨테이너).

예제 (Example)

이 코드를 실행해 봐요.

#include <ranges>

struct A
{
    char* begin();
    char* end();
};
static_assert( std::ranges::common_range<A> );

struct B
{
    char* begin();
    bool end();
};  // not a common_range: begin/end have different types

더 알아보기 (Learn more)

cppreference