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 | |||||||||||||||||||||||
|
Definiert im Header
<experimental/ranges/iterator>
|
||
|
template
<
class
I,
class
T
>
concept
bool
OutputIterator
=
|
(ranges TS) | |
Das
OutputIterator
-Konzept ist eine Verfeinerung von
Iterator
, die die Anforderung hinzufügt, dass es zum Schreiben von Werten des Typs und der Wertkategorie verwendet werden kann, die durch
T
kodiert sind (über
Writable
).
EqualityComparable
ist nicht erforderlich.
Sei
E
ein Ausdruck, sodass
decltype
(
(
E
)
)
gleich
T
ist, und
i
sei ein dereferenzierbares Objekt vom Typ
I
.
OutputIterator<I, T>
ist nur dann erfüllt, wenn
*
i
++
=
E
;
äquivalente Effekte zu
*
i
=
E
;
++
i
;
hat.
Gleichheitserhaltung
Ein Ausdruck ist gleichheitserhaltend , wenn er bei gleichen Eingaben gleiche Ausgaben liefert.
- Die Eingaben eines Ausdrucks bestehen aus seinen Operanden.
- Die Ausgaben eines Ausdrucks bestehen aus seinem Ergebnis und allen durch den Ausdruck modifizierten Operanden (falls vorhanden).
Jeder Ausdruck, der gleichungserhaltend sein muss, muss darüber hinaus stabil sein: Zwei Auswertungen eines solchen Ausdrucks mit denselben Eingabeobjekten müssen gleiche Ausgaben liefern, sofern keine explizite Änderung dieser Eingabeobjekte zwischen den Auswertungen erfolgt.
Hinweise
Im Gegensatz zu den Anforderungen an Ausgabeiteratoren im C++-Standard,
OutputIterator
im Ranges TS erfordert nicht, dass der Iteratorkategorie-Tag definiert wird.
Algorithmen auf Ausgabeiteratoren sollten einzelndurchlaufend sein.