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)
Определено в заголовочном файле <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 ) ; /* не требуется сохранять равенство */

} ;
(начиная с C++20)

Концепт output_iterator является уточнением input_or_output_iterator , добавляя требование, что он может использоваться для записи значений типа и категории значения, кодируемых T (через indirectly_writable ). equality_comparable не требуется.

Содержание

Семантические требования

Пусть E будет выражением, таким что decltype ( ( E ) ) является T , и i будет разыменовываемым объектом типа I . std :: output_iterator < I, T > моделируется только если все подразумеваемые им концепты моделируются, и * i ++ = E ; имеет эффекты, эквивалентные * i = E ; ++ i ; .

Сохранение равенства

Выражения, объявленные в requires выражениях концепций стандартной библиотеки, должны быть equality-preserving (если не указано иное).

Примечания

В отличие от требований LegacyOutputIterator , концепт output_iterator не требует определения тега категории итератора.

Алгоритмы на выходных итераторах должны быть однопроходными.

Смотрите также

определяет, что объекты типа могут быть инкрементированы и разыменованы
(концепт)