title: How is *it++ valid for output iterators?
body: <p>In example code, I often see code such as <code>*it++</code> for output iterators. The expression <code>*it++</code> makes a copy of <code>it</code>, increments <code>it</code>, and then returns the copy which is finally dereferenced. As I understand it, making a copy of an output iterator invalidates the source. But then the increment of <code>it</code> that is performed after creating the copy would be illegal, right? Is my understanding of output iterators flawed?</p>