ranges_borrowed_iterator_t

ranges_borrowed_iterator_t (빌린 반복자 타입)

std::ranges::borrowed_iterator_tborrowed_subrange_t는 R이 borrowed_range면 실제 반복자/하위 범위 타입을, 그 외에는 std::ranges::dangling을 반환하는 별칭 템플릿이에요. C++20부터 사용할 수 있어요.

출처: cppreference

본문

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

template< ranges::range R >
using borrowed_iterator_t = /* see below */;

(1) (since C++20)

template< ranges::range R >
using borrowed_subrange_t = /* see below */;

(2) (since C++20)

    1. R이 borrowed_range를 모델링하면 std::ranges::iterator_t<R>이고, 그 외에는 std::ranges::dangling이에요.
    1. R이 borrowed_range를 모델링하면 std::ranges::subrange<std::ranges::iterator_t<R>>이고, 그 외에는 std::ranges::dangling이에요.

이 두 별칭 템플릿은 일부 제약된 알고리즘이 잠재적으로 매달린 반복자나 뷰를 반환하는 것을 피하기 위해 사용돼요.

가능한 구현 (Possible implementation)

namespace std::ranges {
template<range R>
using borrowed_iterator_t = conditional_t<borrowed_range<R>,
                                          iterator_t<R>, dangling>;
template<range R>
using borrowed_subrange_t = conditional_t<borrowed_range<R>,
                                          subrange<iterator_t<R>>, dangling>;
}

더 알아보기 (Learn more)

cppreference