This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of New status.
Section: 22.2.1 [iterator.requirements.general] Status: New Submitter: Marshall Clow Opened: 2014-03-25 Last modified: 2014-06-24
View other active issues in [iterator.requirements.general].
View all other issues in [iterator.requirements.general].
View all issues with New status.
22.2.1 [iterator.requirements.general] p9 says:
Destruction of an iterator may invalidate pointers and references previously obtained from that iterator.
But the resolution of LWG issue 2360 specifically advocates returning *--temp; where temp is a local variable.And 22.2.5 [forward.iterators] p6 says:
If a and b are both dereferenceable, then a == b if and only if *a and *b are bound to the same object.
which disallows "stashing" iterators (i.e, iterators that refer to data inside themselves).So, I suspect that the restriction in p9 should only apply to input iterators, and can probably be moved into 22.2.3 [input.iterators] instead of 22.2.1 [iterator.requirements.general].
[2014-05-22, Daniel comments]
Given that forward iterators (and beyond) are refinements of input iterator, moving this constraint to input iterators won't help much because it would still hold for all refined forms.