On Wed, 27 Apr 2011 16:22:45 -0400, Jens Mueller <jens.k.muel...@gmx.de>
wrote:
Hi,
on page 50 TDPL states
"All arguments are evaluated left to right before fun gets invoked."
That means
int i;
writeln(++i, ++i);
is supposed to print
"12".
and is valid.
But on http://www.digitalmars.com/d/2.0/expression.html
func(++i, ++i);
is defined as an error.
Is the evaluation order for function calls undefined or it is left to
right?
Both :)
The answer is, the current spec says it is an error. However, TDPL is
usually considered to be what the spec *will* be when D2 is completed. So
expect the left to right evaluation in the future. It's likely that the
compiler doesn't currently conform to TDPL.
-Steve