Namespaces
Variants

std::ranges:: borrowed_iterator_t, std::ranges:: borrowed_subrange_t

From cppreference.net
Ranges library
Range adaptors
헤더에 정의됨 <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) std :: ranges:: iterator_t < R > 만약 R borrowed_range 를 모델로 하는 경우, std::ranges::dangling 그렇지 않은 경우.
2) std :: ranges:: subrange < std :: ranges:: iterator_t < R >> 만약 R borrowed_range 를 모델로 하는 경우, std::ranges::dangling 그렇지 않은 경우.

이 두 별칭 템플릿은 일부 제약 알고리즘 에서 잠재적으로 댕글링(dangling) 반복자나 뷰를 반환하는 것을 피하기 위해 사용됩니다.

가능한 구현

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

참고 항목

댕글링(dangling) 상태일 것이므로 반환되어서는 안 되는 반복자나 subrange 를 나타내는 플레이스홀더 타입
(클래스)