std::ranges::join_with_view<V,Pattern>::iterator<Const>::iterator
cppreference.net에서 가져옴
/*iterator*/() = default;
|
(1) | (C++23부터) |
constexpr /*iterator*/( /*iterator*/<!Const> i )
requires Const &&
std::convertible_to<ranges::iterator_t<V>, /*OuterIter*/> &&
std::convertible_to<ranges::iterator_t</*InnerRng*/>,
/*InnerIter*/> &&
std::convertible_to<ranges::iterator_t<Pattern>, /*PatternIter*/>;
|
(2) | (C++23부터) |
constexpr /*iterator*/( /*Parent*/& parent, /*OuterIter*/ outer )
requires std::forward_range</*Base*/>;
|
(3) | (C++23부터) (설명 전용*) |
constexpr explicit /*iterator*/( /*Parent*/ parent )
requires (!std::forward_range</*Base*/>);
|
(4) | (C++23부터) (설명 전용*) |
반복자를 생성합니다. 오버로드 (3,4)는 ranges::join_with_view의 begin() 및 end()에서 호출됩니다.
| 오버로드 | 데이터 멤버 | ||
|---|---|---|---|
parent_
|
outer_it_
|
inner_it_
| |
| (1) | nullptr
|
값 초기화 로 초기화됨( Base이 forward_range 모델을 만족하는 경우에만)
|
기본 초기화 |
| (2) | i.parent_
|
std::move(i.outer_it_ 으로 초기화됨( Base이 forward_range 모델을 만족하는 경우에만)
| |
| (3) | std::addressof(parent)
|
으로 초기화됨std::move(outer)
| |
| (4) | 해당 없음 | ||
2) 데이터 멤버 초기화 후, 다음 코드와 동일하게 실행됨:
if (i.inner_it_ .index() == 0)
inner_it_ .template emplace<0>(std::get<0>(std::move(i.inner_it_ )));
else
inner_it_ .template emplace<1>(std::get<1>(std::move(i.inner_it_ )));
.
매개변수
| i | - | 변경 가능한 반복자 |
| parent | - | a std::ranges::join_with_view object |
| outer | - | parent 의 기반 범위에 대한 반복자 |
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |