Should the comma operator be removed in D2?
Stewart Gordon
smjg_1998 at yahoo.com
Thu Nov 19 10:45:04 PST 2009
Yigal Chripun wrote:
> Stewart Gordon wrote:
>> Yigal Chripun wrote:
<snip>
>>> a + 5, b + a //
<snip>
> I don't follow you. What I said was that if you have the above in a for
> loop with a comma expression, you'd expect to *first* add 5 to a and
> *then* add the new a to b (comma operator defines left to right order of
> evaluation).
<snip>
What "new a"? Normally, the expression "a + 5" doesn't alter the value
of a at all. The only time it would is if a is of a programmer-defined
type that has an opAdd function that does otherwise. Such semantics
bending is bound to create more confusion than the comma operator.
> tuples in general do not have to require a specific order since you keep
> all the results anyway, so the above could break. by defining tuples to
> be evaluated with the same order, the problem would be solved.
Forcing an evaluation order on tuples would preclude common
subexpression optimisation.
Stewart.
More information about the Digitalmars-d
mailing list