Quote Originally Posted by christop View Post
I wouldn't really call it a "flaw". It's just an implementation detail, and the application has to be written in a way that it doesn't care about the order an expression is evaluated.
Should a "spade" be called by any other name? If a compiler can convert the code "*ptr++" to "*ptr; ++ptr;", it stands to reason it could do the same for objects which override those operators. As it is, the facility is almost useless.