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)
Défini dans l'en-tête <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 ) ; /* non requis d'être préservateur d'égalité */

} ;
(depuis C++20)

Le concept output_iterator est un raffinement de input_or_output_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 indirectly_writable ). equality_comparable n'est pas requis.

Table des matières

Exigences sémantiques

Soit E une expression telle que decltype ( ( E ) ) soit T , et i un objet déréférençable de type I . std :: output_iterator < I, T > est modélisé seulement si tous les concepts qu'il subsume sont modélisés, et * i ++ = E ; a des effets équivalents à * i = E ; ++ i ; .

Préservation de l'égalité

Les expressions déclarées dans les requires expressions des concepts de la bibliothèque standard doivent être equality-preserving (sauf indication contraire).

Notes

Contrairement aux exigences LegacyOutputIterator , le concept output_iterator n'exige 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.

Voir aussi

spécifie que les objets d'un type peuvent être incrémentés et déréférencés
(concept)