Namespaces
Variants

operator+,- (ranges::transform_view:: iterator )

From cppreference.net
Ranges library
Range adaptors
friend constexpr /*iterator*/ operator + ( /*iterator*/ i, difference_type n )
requires ranges:: random_access_range < Base > ;
(1) (C++20 이후)
friend constexpr /*iterator*/ operator + ( difference_type n, /*iterator*/ i )
requires ranges:: random_access_range < Base > ;
(2) (C++20 이후)
friend constexpr /*iterator*/ operator - ( /*iterator*/ i, difference_type n )
requires ranges:: random_access_range < Base > ;
(3) (C++20 이후)
friend constexpr difference_type operator - ( const /*iterator*/ & x,

const /*iterator*/ & y )
requires std:: sized_sentinel_for < ranges:: iterator_t < Base > ,

ranges:: iterator_t < Base >> ;
(4) (C++20 이후)
1,2) 반복자를 i 에서 n 만큼 증가시킨 값을 반환합니다.
3) 반복자를 i 에서 n 만큼 감소시킨 값을 반환합니다.
4) x y 사이의 거리를 반환합니다.

이 함수들은 일반적인 unqualified lookup 또는 qualified lookup 으로는 보이지 않으며, 인수들의 연관 클래스로 transform_view:: iterator <Const> 가 있을 때에만 argument-dependent lookup 을 통해서만 찾을 수 있습니다.

목차

매개변수

i, x, y - 반복자들.
n - 현재 위치 기준 상대적 위치.

반환값

parent_ 가 부모 transform_view 에 대한 포인터를 나타내고, current_ 가 기본 반복자를 나타낸다고 가정합니다.

1,2) /*iterator*/ { * i. parent_ , i. current_ + n }
3) /*iterator*/ { * i. parent_ , i. current_ - n }
4) x. current_ - y. current_

예제

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 3483 C++20 transform_view::iterator 의 차이 연산이 과도하게 제약됨 요구 사항이 완화됨