Namespaces
Variants

std:: output_iterator

From cppreference.net
Iterator library
Iterator concepts
output_iterator
(C++20)

Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
Definiert im Header <iterator>
template < class I, class T >

concept output_iterator =
std:: input_or_output_iterator < I > &&
std:: indirectly_writable < I, T > &&
requires ( I i, T && t ) {
* i ++ = std:: forward < T > ( t ) ; /* nicht erforderlich gleichheitserhaltend zu sein */

} ;
(seit C++20)

Das output_iterator -Konzept ist eine Verfeinerung von input_or_output_iterator , die die Anforderung hinzufügt, dass es zum Schreiben von Werten des Typs und der Wertkategorie, die durch T kodiert sind, verwendet werden kann (über indirectly_writable ). equality_comparable ist nicht erforderlich.

Inhaltsverzeichnis

Semantische Anforderungen

Sei E ein Ausdruck, sodass decltype ( ( E ) ) gleich T ist, und i sei ein dereferenzierbares Objekt vom Typ I . std :: output_iterator < I, T > wird nur dann modelliert, wenn alle davon subsumierten Konzepte modelliert werden, und * i ++ = E ; hat Effekte, die äquivalent sind zu * i = E ; ++ i ; .

Gleichheitserhaltung

Ausdrücke, die in requires expressions der Standardbibliothek-Konzepte deklariert werden, müssen equality-preserving sein (sofern nicht anders angegeben).

Hinweise

Im Gegensatz zu den LegacyOutputIterator -Anforderungen erfordert das output_iterator -Konzept nicht, dass der Iterator-Kategorie-Tag definiert wird.

Algorithmen auf Ausgabeiteratoren sollten einzelndurchlaufend sein.

Siehe auch

spezifiziert, dass Objekte eines Typs inkrementiert und dereferenziert werden können
(Konzept)