On Saturday 26 February 2011 00:51:45 spir wrote:
> On 02/26/2011 04:26 AM, Steven Schveighoffer wrote:
> > Let me fix that for you:
> > 
> > func(j++, y[j])
> 
> That should be illegal: a statement used as expression, but keeping it's
> effect anyway, and not the least kind of, namely an assignment, meaning a
> change of the program state.

Umm. There is no statement used as an expression here. The only statement is a 
function call. Both j++ and y[j] are expressions. Even the function call is an 
expression. It's just that if it's followed by a semi-colon, it becomes a 
statement.

Regardless, the best solution is to make the order of evaluation of the 
function 
arguments fixed at left-to-right instead of undefined. And as I understand it, 
Walter intends to make D do that at some point. It's just that he hasn't gotten 
around to it yet.

- Jonathan M Davis

Reply via email to