Namespaces
Variants

std:: output_iterator

From cppreference.net
Iterator library
Iterator concepts
output_iterator
(C++20)

Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
Definido en el 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 preserve la igualdad */

} ;
(desde C++20)

El concepto output_iterator es un refinamiento de input_or_output_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 indirectly_writable ). No se requiere equality_comparable .

Contenidos

Requisitos semánticos

Sea E una expresión tal que decltype ( ( E ) ) es T , y i un objeto desreferenciable de tipo I . std :: output_iterator < I, T > se modela solo si todos los conceptos que subsume están modelados, y * i ++ = E ; tiene efectos equivalentes a * i = E ; ++ i ; .

Preservación de la igualdad

Las expresiones declaradas en las requires expressions de los conceptos de la biblioteca estándar deben ser equality-preserving (excepto cuando se indique lo contrario).

Notas

A diferencia de los LegacyOutputIterator requirements, el concepto output_iterator no requiere que la etiqueta de categoría del iterador esté definida.

Los algoritmos en iteradores de salida deben ser de una sola pasada.

Véase también

especifica que los objetos de un tipo pueden ser incrementados y desreferenciados
(concept)