std::experimental::ranges:: OutputIterator
| Technical Specification | ||||
| Filesystem library (filesystem TS) | ||||
| Library fundamentals (library fundamentals TS) | ||||
| Library fundamentals 2 (library fundamentals TS v2) | ||||
| Library fundamentals 3 (library fundamentals TS v3) | ||||
| Extensions for parallelism (parallelism TS) | ||||
| Extensions for parallelism 2 (parallelism TS v2) | ||||
| Extensions for concurrency (concurrency TS) | ||||
| Extensions for concurrency 2 (concurrency TS v2) | ||||
| Concepts (concepts TS) | ||||
| Ranges (ranges TS) | ||||
| Reflection (reflection TS) | ||||
| Mathematical special functions (special functions TR) | ||||
| Experimental Non-TS | ||||
| Pattern Matching | ||||
| Linear Algebra | ||||
| std::execution | ||||
| Contracts | ||||
| 2D Graphics |
| Iterator concepts | |||||||||||||||||||||||
|
|||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||
| Concept utilities | |||||||||||||||||||||||
| Iterator utilities and operations | |||||||||||||||||||||||
| Iterator traits | |||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||
| Stream iterators | |||||||||||||||||||||||
|
Défini dans l'en-tête
<experimental/ranges/iterator>
|
||
|
template
<
class
I,
class
T
>
concept
bool
OutputIterator
=
|
(ranges TS) | |
Le concept
OutputIterator
est un raffinement du concept
Iterator
, ajoutant l'exigence qu'il puisse être utilisé pour écrire des valeurs de type et de catégorie de valeur encodées par
T
(via
Writable
).
EqualityComparable
n'est pas requis.
Soit
E
une expression telle que
decltype
(
(
E
)
)
soit
T
, et
i
un objet déréférençable de type
I
.
OutputIterator<I, T>
est satisfait seulement si
*
i
++
=
E
;
a des effets équivalents à
*
i
=
E
;
++
i
;
.
Préservation de l'égalité
Une expression est préservatrice d'égalité si elle produit des résultats égaux pour des entrées égales.
- Les entrées d'une expression consistent en ses opérandes.
- Les sorties d'une expression consistent en son résultat et tous les opérandes modifiés par l'expression (le cas échéant).
Toute expression devant préserver l'égalité doit en outre être stable : deux évaluations d'une telle expression avec les mêmes objets d'entrée doivent produire des sorties égales en l'absence de toute modification explicite intervenant entre-temps de ces objets d'entrée.
Notes
Contrairement aux exigences des itérateurs de sortie dans la norme C++,
OutputIterator
dans le Ranges TS ne nécessite pas que l'étiquette de catégorie d'itérateur soit définie.
Les algorithmes sur les itérateurs de sortie doivent être à passage unique.