std:: output_iterator
Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Defined in header
<iterator>
|
||
template
<
class
I,
class
T
>
concept output_iterator
=
|
(since C++20) | |
The
output_iterator
concept is a refinement of
input_or_output_iterator
, adding the requirement that it can be used to write values of type and value category encoded by
T
(via
indirectly_writable
).
equality_comparable
is not required.
Semantic requirements
Let
E
be an expression such that
decltype
(
(
E
)
)
is
T
, and
i
be a dereferenceable object of type
I
.
std
::
output_iterator
<
I, T
>
is modeled only if all the concepts it subsumes are modeled, and
*
i
++
=
E
;
has effects equivalent to
*
i
=
E
;
++
i
;
.
Equality preservation
Expressions declared in requires expressions of the standard library concepts are required to be equality-preserving (except where stated otherwise).
Notes
Unlike the
LegacyOutputIterator
requirements, the
output_iterator
concept does not require that the iterator category tag be defined.
Algorithms on output iterators should be single pass.
See also
(C++20)
|
specifies that objects of a type can be incremented and dereferenced
(concept) |