std::output_iterator - cppreference.com (original) (raw)

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.

[edit] 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;.

[edit] Equality preservation

Expressions declared in requires expressions of the standard library concepts are required to be equality-preserving (except where stated otherwise).

[edit] 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.

[edit] See also