Concept BasicOutputIteratorconcept BasicOutputIterator<typename X>
: IteratorAssociatedTypes<X>, CopyConstructible<X>
{
requires Assignable<reference, value_type>;
typename postincrement_result = X;
requires Dereferenceable<postincrement_result&>,
Assignable<Dereferenceable<postincrement_result&>::reference,
value_type>,
Convertible<postincrement_result, const X&>;
reference operator*(X&);
X& operator++(X&);
postincrement_result operator++(X&, int);
};Where Defined#include <iterator> DescriptionThe BasicOutputIterator concept describes an output iterator
that has one, fixed value type. Unlike OutputIterator,
BasicOutputIterator is a part of the iterator refinement
hierarchy.
X& operator++(X& r);
Postcondition: &r == &++r.
postincrement_result operator++(X& r, int);
Effects: equivalent to
{ X tmp = r;
++r;
return tmp; }
Every BasicOutputIterator is an OutputIterator for value types Assignable to its value_type. This allows algorithms specified with
OutputIterator (the less restrictive concept) to work with
iterators that have concept maps for the more common
BasicOutputIterator concept.
template<BasicOutputIterator X, typename Value>
requires Assignable<value_type, Value>
concept_map OutputIterator<X, Value> {
typedef Value value_type;
typedef X::reference reference;
typedef X::postincrement_result postincrement_result;
};
|