bearophile wrote:
Georg Wrede:

arra[i] = arrb[i++];
arra[i++] = arrb[i];
I'm not sure that such dependences are good code.
By stating a definite order between lvalue and rvalue, you
would actually encourage this kind of code.

I agree that putting such things in code is bad, but nowadays the
solution adopted by C is Just Wrong. To help avoid bugs from your
programs the language has to avoid undefined behaviors (this is one of
the lessons of Java).

If Walter had ulimited time, the of course I'd favor either defining the precedence, or then enforcing errors on them, and not leaving them undefined. Or, probably, with Walter's unlimited time, I'd vote for a system that is the Theoretically Best mix of programming praxis and compiler enforcement.

So the solutions are to define such behaviors as Andrei suggests, or
to forbid such code. I can accept both ways.

I am used to Python and I think I can appreciate the Python solution
better, but the Java solution too is better than having undefined
behavior in a modern language.

Reply via email to