Namespaces
Variants

std::experimental::ranges:: next

From cppreference.net
Definido en el encabezado <experimental/ranges/iterator>
namespace {

constexpr /* no especificado */ next = /* no especificado */ ;

}
(ranges TS)
(objeto de punto de personalización)
Firma de llamada
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)

Avanza el iterador i n veces, o hasta que se alcance bound , lo que ocurra primero, y devuelve el iterador avanzado.

1) Equivalente a ++ i ; return i ; .
2) Equivalente a ranges:: advance ( i, n ) ; return i ; .
3) Equivalente a ranges:: advance ( i, bound ) ; return i ; .
4) Equivalente a ranges:: advance ( i, n, bound ) ; return i ; .

Contenidos

Objetos de punto de personalización

El nombre ranges::next denota un objeto de punto de personalización , que es un objeto función de un tipo de clase literal Semiregular (denotado, con fines expositivos, como NextT ). Todas las instancias de NextT son iguales. Por lo tanto, ranges::next puede copiarse libremente y sus copias pueden usarse indistintamente.

Dado un conjunto de tipos Args... , si std:: declval < Args > ( ) ... cumplen los requisitos para argumentos de ranges::next anteriores, NextT satisfará ranges :: Invocable < const NextT, Args... > . De lo contrario, ningún operador de llamada a función de NextT participa en la resolución de sobrecarga.

En cada unidad de traducción en la que ranges::next está definido, se refiere a la misma instancia del objeto de punto de personalización. (Esto significa que puede usarse libremente en elementos como funciones inline y plantillas de función sin violar la one-definition rule .)

Valor de retorno

El iterador avanzado.

Notas

Aunque omitir n para la sobrecarga (2) se comporta como si n fuera 1, omitir n para la sobrecarga (4) efectivamente se comporta como si n fuera infinito (siempre avanza hasta bound ).

Ejemplo

Véase también

(C++11)
incrementa un iterador
(plantilla de función)
avanza un iterador una distancia dada
(plantilla de función)
decrementa un iterador
(plantilla de función)
devuelve la distancia entre un iterador y un centinela, o entre el inicio y el final de un rango
(plantilla de función)