Namespaces
Variants

std::ranges::join_with_view<V,Pattern>:: iterator <Const>:: operator++,--

From cppreference.net
Ranges library
Range adaptors
constexpr /*iterator*/ & operator ++ ( ) ;
(1) (C++23부터)
constexpr void operator ++ ( int ) ;
(2) (C++23부터)
constexpr /*iterator*/ operator ++ ( int )

requires std:: is_reference_v < /*InnerBase*/ > &&
ranges:: forward_range < /*Base*/ > &&

ranges:: forward_range < /*InnerBase*/ > ;
(3) (C++23부터)
constexpr /*iterator*/ & operator -- ( )

requires std:: is_reference_v < /*InnerBase*/ > &&
ranges:: bidirectional_range < /*Base*/ > &&
ranges:: bidirectional_range < /*InnerBase*/ > &&
ranges:: common_range < /*InnerBase*/ > &&
ranges:: bidirectional_range < /*PatternBase*/ > &&

ranges:: common_range < /*PatternBase*/ > ;
(4) (C++23부터)
constexpr /*iterator*/ operator -- ( int )

requires std:: is_reference_v < /*InnerBase*/ > &&
ranges:: bidirectional_range < /*Base*/ > &&
ranges:: bidirectional_range < /*InnerBase*/ > &&
ranges:: common_range < /*InnerBase*/ > &&
ranges:: bidirectional_range < /*PatternBase*/ > &&

ranges:: common_range < /*PatternBase*/ > ;
(5) (C++23부터)

반복자를 증가시키거나 감소시킵니다.

1) 내부 반복자 를 다음과 같이 증가시킵니다 std:: visit ( [ ] ( auto & it ) { ++ it ; } , inner_it_  ) ; .
그 후, 내부 및 외부 반복자를 다음과 같이 조정합니다:
  • 증가된 내부 반복자가 패턴 범위의 끝 반복자(past-the-end iterator)인 경우, 다음 내부 범위의 시작을 가리키는 반복자로 설정됩니다.
  • 증가된 내부 반복자가 내부 범위의 끝 반복자(past-the-end iterator)인 경우, 외부 반복자가 증가됩니다. 그런 다음:
  • 증가된 외부 반복자가 외부 범위의 끝 반복자(past-the-end iterator)가 아닌 경우, 내부 반복자는 패턴 범위의 시작을 가리키는 반복자로 설정됩니다.
  • 그렇지 않고 std:: is_reference_v < InnerBase   > true 인 경우, 내부 반복자는 singular value 를 보유하는 패턴 반복자로 설정됩니다.
  • 내부 반복자가 끝 반복자(past-the-end iterator)가 아니거나 외부 반복자가 끝 반복자(past-the-end iterator)가 될 때까지 위 작업을 반복합니다.
2) ++* this ; 와 동일합니다.
3) 다음에 해당함: auto tmp = * this ;
++* this ;
return tmp ;
.
4) 외부 반복자가 외부 범위의 past-the-end 반복자인 경우, 이를 감소시키고 내부 반복자를 마지막 내부 범위의 past-the-end 반복자로 설정합니다. 그렇지 않으면 아무 작업도 수행하지 않습니다.
이후 내부 및 외부 반복자를 다음과 같이 조정합니다:
  • 내부 반복자가 내부 범위의 시작을 가리키는 경우, 패턴 범위의 past-the-end 반복자로 설정됩니다.
  • 내부 반복자가 패턴 범위의 시작을 가리키는 경우, 외부 반복자는 감소되고 내부 반복자는 이전 내부 범위의 past-the-end 반복자로 설정됩니다.
  • 내부 반복자가 어떤 범위의 시작도 가리키지 않을 때까지 위 작업을 반복합니다.
마지막으로, 내부 반복자를 마치 다음과 같이 감소시킵니다: std:: visit ( [ ] ( auto & it ) { -- it ; } , inner_it_  ) ; .
5) 다음에 해당함 auto tmp = * this ;
--* this ;
return tmp ;
.

반환값

1,4) * this
3,5) 변경 전에 생성된 * this 의 복사본.