
On Wed, Feb 19, 2014 at 1:55 AM, Eric Niebler
On 02/18/2014 03:47 PM, Neil Groves wrote:
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.
I don't believe that it is strictly correct to state that algorithms fon't expect values in the sequence changing out from under them. Where is this specified? I believe that a correct program adhering to the results could well be broken by the proposed change. I disagree that it is practically guaranteed. I think there are potentially cases, particularly of user algorithms, that could have problems despite being correct. I agree that these are the minority of cases.
Eric