std::experimental::ranges:: OutputIterator
|
Definido en el encabezado
<experimental/ranges/iterator>
|
||
|
template
<
class
I,
class
T
>
concept
bool
OutputIterator
=
|
(ranges TS) | |
El concepto
OutputIterator
es un refinamiento de
Iterator
, añadiendo el requisito de que puede utilizarse para escribir valores de tipo y categoría de valor codificados por
T
(a través de
Writable
).
EqualityComparable
no es requerido.
Sea
E
una expresión tal que
decltype
(
(
E
)
)
es
T
, y
i
un objeto desreferenciable de tipo
I
.
OutputIterator<I, T>
se satisface solo si
*
i
++
=
E
;
tiene efectos equivalentes a
*
i
=
E
;
++
i
;
.
Preservación de la igualdad
Una expresión es equality preserving si produce 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 los hay).
Toda expresión que deba preservar la igualdad debe además ser estable : dos evaluaciones de dicha expresión con los mismos objetos de entrada deben producir salidas iguales, a menos que exista una modificación explícita e intermedia de esos objetos de entrada.
Notas
A diferencia de los requisitos del iterador de salida en el estándar de C++,
OutputIterator
en el Ranges TS no requiere que la etiqueta de categoría del iterador esté definida.
Los algoritmos en iteradores de salida deben ser de una sola pasada.