cpp/named req/OutputIterator

A is a  that can write to the pointed-to element.

An example of a type that implements is std::ostream_iterator.

When, , or satisfies the  requirements in addition to its own requirements, it is described as mutable.

Requirements
The type satisfies  if


 * The type satisfies
 * is a class type or a pointer type

And, given
 * , a value of some type that is writable to the output iterator (there may be multiple types that are writable, e.g. if may be a template. There is no notion of  as for the input iterators)
 * , an lvalue of type ,

The following expressions must be valid and have their specified effects

Standard library
The following standard library iterators are output iterators that are not forward iterators:
 * std
 * std
 * std
 * std
 * std