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

Reply via email to