std::output_iterator
Definido en el archivo de encabezado <iterator> | ||
template<class I, class T> concept output_iterator = | (desde C++20) | |
El concepto output_iterator
es un refinamiento de input_or_output_iterator
, añadiendo el requerimiento que puede ser usado para escribir valores de tipo y categoría de valor codificada por T
(via indirectly_writable
). equality_comparable
no se requiere.
Contenido |
[editar]Requerimientos semánticos
Dejemos que E
sea una expresión tal que decltype((E)) es T
, e i
sea un objeto desreferenciable de tipo I
. output_iterator<I, T>
es modelado solo si todos los conceptos que subsume se modelan, y *i++= E; tiene efectos equivalentes a *i = E;++i;.
[editar]Conservación de la igualdad
Una expresión es conservadora de igualdad si resulta en salidas iguales dadas entradas iguales.
- Las entradas de una expresión consisten en sus operandos.
- Las salidas de una expresión consisten en su resultado y todos los operandos modificados por la expresión (si es que los hay).
Cada expresión que se requiere sea conservadora de igualdad, se requiere además que sea estable: dos evaluaciones de tal expresión con los mismos objetos de entrada debe tener salidas iguales si no se encuentra alguna modificación interventora de esos objetos de entrada.
[editar]Notas
A diferencia de los requerimientos de OutputIterator, el concepto output_iterator
no requiere que la etiqueta de la categoría del iterador se defina.
Los algoritmos en iteradores de salida deberán ser de un solo recorrido.
[editar]Véase también
Especifica que los objetos de un tipo pueden incrementarse y desreferenciarse. (concepto) |