Bibliothèque d'itérateur C ++ - output_iterator_tag

La description

Il est utilisé pour identifier la catégorie d'un itérateur en tant qu'itérateur de sortie et tous les itérateurs de sortie prennent en charge au moins une des opérations suivantes.

C ++ 98

propriété expressions valides
C'est une copie constructible, assignable par copie et destructible

X b(a);

b = a;

Il peut être déréférencé en tant que lvalue (s'il est dans un état déréférencable ).

Il ne doit être déréférencé que comme le côté gauche d'une déclaration d'affectation.

Une fois déréférencée, sa valeur d'itérateur peut ne plus être déréférencable .

*a = t
Il peut être incrémenté.

++a

a++

*a++ = t

C ++ 11

propriété expressions valides
C'est une copie-constructible, copie-assignable et destructible

X b(a);

b = a;

Il peut être déréférencé en tant que lvalue (s'il est dans un état déréférencable ).

Il ne doit être déréférencé que comme le côté gauche d'une déclaration d'affectation.

Une fois déréférencée, sa valeur d'itérateur peut ne plus être déréférencable .

*a = t
Il peut être incrémenté.

++a

a++

*a++ = t

Les valeurs L sont permutables . swap(a,b)

Déclaration

Voici la déclaration pour std :: output_iterator_tag.

C ++ 11

struct output_iterator_tag {};