std::experimental::ranges:: next
|
Definiert in Header
<experimental/ranges/iterator>
|
||
|
namespace
{
constexpr
/* unspecified */
next
=
/* unspecified */
;
|
(ranges TS)
(Anpassungspunktobjekt) |
|
|
Aufrufsignatur
|
||
|
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) | |
Bewegt den Iterator i n Mal vorwärts, oder bis bound erreicht wird, je nachdem was zuerst eintritt, und gibt den vorgerückten Iterator zurück.
Inhaltsverzeichnis |
Customization Point Objects
Der Name
ranges::next
bezeichnet ein
Customization Point Object
, welches ein
Funktionsobjekt
eines
Literal
Semiregular
Klassentyps ist (zur Veranschaulichung als
NextT
bezeichnet). Alle Instanzen von
NextT
sind gleich. Daher kann
ranges::next
frei kopiert werden und seine Kopien können austauschbar verwendet werden.
Gegeben eine Menge von Typen
Args...
, falls
std::
declval
<
Args
>
(
)
...
die Anforderungen für Argumente von
ranges::next
oben erfüllen, wird
NextT
ranges
::
Invocable
<
const
NextT, Args...
>
erfüllen. Andernfalls beteiligt sich kein Funktionsaufrufoperator von
NextT
an der Überladungsauflösung.
In jeder Übersetzungseinheit, in der
ranges::next
definiert ist, bezieht es sich auf dieselbe Instanz des Customization Point Objects. (Dies bedeutet, dass es frei in Dingen wie Inline-Funktionen und Funktionsvorlagen verwendet werden kann, ohne das
One-Definition-Rule
zu verletzen.)
Rückgabewert
Der erweiterte Iterator.
Hinweise
Obwohl das Weglassen von n für Überladung (2) sich so verhält, als ob n 1 wäre, verhält sich das Weglassen von n für Überladung (4) effektiv so, als ob n unendlich wäre (immer bis zu bound vorrücken).
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
(C++11)
|
erhöht einen Iterator
(Funktions-Template) |
|
bewegt einen Iterator um eine gegebene Distanz
(Funktions-Template) |
|
|
verringert einen Iterator
(Funktions-Template) |
|
|
gibt die Distanz zwischen einem Iterator und einem Sentinel zurück, oder zwischen dem Anfang und dem Ende eines Bereichs
(Funktions-Template) |