I really wanted the for each style loops --
I really wanted the for each style loops --
Edit: You know what... it doesn't matter. It is your prediction, your rationale, your problem. I just hope people don't screw up by avoiding move semantics because of the same flimsy rationale.
Well, from my perspective you didn't say anything else either.I said nothing of the sort.
It's hard to get templates right for every case, good programmers don't avoid them.
It's hard to get exceptions right, good programmers don't avoid them.
No existing compiler handles templates perfectly, good programmers don't avoid them.
Programmers abuse the simplest aspects of a language as readily as the complex ones.
If you can move from a linear algorithm to a constant algorithm, you usually should.
It is usually correct to start with a better algorithm than try to replace an algorithm used in an existing implementation.
Some of the problems you are apparently worried about wouldn't even exist if the move overloads were required. (If every operation is non-throwing, the total is non-throwing.)
Just like for exceptions and templates, if you use the right primitives, the correct implementation of the various move overloads is almost trivial. The problem is, if programmers don't implement the move overloads correctly, these primitives will not be available. By avoiding them, programmers guarantee their source can't be trusted in many contexts.
It's just like coding under the assumption that you can avoid exceptions just because you don't personally employee them, you potentially break everything.
Soma