std::experimental::ranges:: OutputIterator
| Technical Specification | ||||
| Filesystem library (filesystem TS) | ||||
| Library fundamentals (library fundamentals TS) | ||||
| Library fundamentals 2 (library fundamentals TS v2) | ||||
| Library fundamentals 3 (library fundamentals TS v3) | ||||
| Extensions for parallelism (parallelism TS) | ||||
| Extensions for parallelism 2 (parallelism TS v2) | ||||
| Extensions for concurrency (concurrency TS) | ||||
| Extensions for concurrency 2 (concurrency TS v2) | ||||
| Concepts (concepts TS) | ||||
| Ranges (ranges TS) | ||||
| Reflection (reflection TS) | ||||
| Mathematical special functions (special functions TR) | ||||
| Experimental Non-TS | ||||
| Pattern Matching | ||||
| Linear Algebra | ||||
| std::execution | ||||
| Contracts | ||||
| 2D Graphics |
| Iterator concepts | |||||||||||||||||||||||
|
|||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||
| Concept utilities | |||||||||||||||||||||||
| Iterator utilities and operations | |||||||||||||||||||||||
| Iterator traits | |||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||
| Stream iterators | |||||||||||||||||||||||
|
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.