OutputIteratorの要件

OutputIteratorを書いていると、要件が曖昧で不安になってきました。
Library Active Issuesを確認したところ、それを指摘した報告が見つかりました。
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#485

SGIの定義ではより明確になっています。(DefaultConstructibleは余計な気がしますが)
http://www.sgi.com/tech/stl/OutputIterator.html
要約すると、コピー後はコピー元の反復子を使用できないということです。Move Semanticsみたいな感じです。

現在の規格に厳密に従うなら、状態(位置情報以外)は共有できないとダメですね。