
On 02/18/2014 03:47 PM, Neil Groves wrote:
To me this indicates that I may have types where my "moved from" object is valid and in a specified state. I extrapolate from this that therefore it may be valid to move from the same object multiple times. I see no reason why I should not implement a pimpl idiom where the moved-from object has the pointer assigned to null and have valid multiple move operations from the same type.
I therefore think there are a number of reasons to strongly disagree with the notion that a move iterator must be an Input Iterator.
Yes, it's safe to assume that moved-from objects are in some valid state. That's not the issue. The moved-from state is almost guaranteed to be different from the state the object had before the move. The issue here is that the *algorithms* don't expect values in the sequence changing out from under them. This breaks assumptions all over the place. Algorithms *will* give nonsensical results when called with move iterators. It's practically guaranteed. Eric