Namespaces
Variants

std::experimental::ranges:: next

From cppreference.net
namespace {

constexpr /* unspecified */ next = /* unspecified */ ;

}
(ranges TS)
(customization point object)
호출 시그니처
template < Iterator I >
constexpr I next ( I i ) ;
(1)
template < Iterator I >
constexpr I next ( I i, ranges :: difference_type_t < I > n ) ;
(2)
template < Iterator I, Sentinel < I > S >
constexpr I next ( I i, S bound ) ;
(3)
template < Iterator I, Sentinel < I > S >
constexpr I next ( I i, ranges :: difference_type_t < I > n, S bound ) ;
(4)

반복자 i n 회만큼 진행하거나 bound 에 도달할 때까지 진행하며(둘 중 먼저 도달하는 조건 적용), 진행된 반복자를 반환합니다.

1) 다음에 해당함 ++ i ; return i ; .
2) 다음에 해당함: ranges:: advance ( i, n ) ; return i ; .
3) 다음에 해당함: ranges:: advance ( i, bound ) ; return i ; .
4) 다음에 해당함: ranges:: advance ( i, n, bound ) ; return i ; .

목차

커스터마이제이션 포인트 객체

ranges::next 라는 이름은 커스터마이제이션 포인트 객체 를 나타내며, 이는 함수 객체 의 일종으로 리터럴 Semiregular 클래스 타입(설명 목적으로 NextT 로 표기)입니다. NextT 의 모든 인스턴스는 동일합니다. 따라서 ranges::next 는 자유롭게 복사할 수 있으며 그 복사본들은 상호 교환적으로 사용될 수 있습니다.

주어진 타입 집합 Args... 에 대해, std:: declval < Args > ( ) ... 가 위의 ranges::next 에 대한 인수 요구사항을 만족하는 경우, NextT ranges :: Invocable < const NextT, Args... > 를 만족합니다. 그렇지 않은 경우, NextT 의 함수 호출 연산자 중 어느 것도 오버로드 해결에 참여하지 않습니다.

ranges::next 가 정의된 모든 번역 단위에서, 이것은 동일한 사용자 지정점 객체의 인스턴스를 참조합니다. (이는 인라인 함수나 함수 템플릿과 같은 것들에서 일 정의 규칙 을 위반하지 않으면서 자유롭게 사용될 수 있음을 의미합니다.)

반환값

고급 반복자.

참고 사항

오버로드 (2) 에서 n 을 생략하면 n 이 1인 것처럼 동작하지만, 오버로드 (4) 에서 n 을 생략하면 사실상 n 이 무한대인 것처럼 동작합니다(항상 bound 까지 진행).

예제

참고 항목

(C++11)
반복자를 증가시킴
(함수 템플릿)
주어진 거리만큼 반복자를 전진시킴
(함수 템플릿)
반복자를 감소시킴
(함수 템플릿)
반복자와 센티넬 사이의 거리, 또는 범위의 시작과 끝 사이의 거리를 반환함
(함수 템플릿)