Espacios de nombres
Variantes
Acciones

std::output_iterator

De cppreference.com
< cpp‎ | iterator
 
 
Biblioteca de iteradores
Conceptos de iteradores
Primitivas de iteradores
Conceptos de algoritmos y servicios
Conceptos invocables indirectos
Requerimientos comunes de algoritmos
Servicios
Adaptadores de iteradores
Iteradores de flujos
Puntos de personalización de iteradores
Operaciones de iteradores
Acceso a rangos
(C++11)(C++14)
(C++11)(C++14)
(C++17)(C++20)
(C++14)(C++14)
(C++14)(C++14)
(C++17)
(C++17)
 
Definido en el archivo de encabezado <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);        // no se requiere que conserve la igualdad

    };
(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)[editar]
close