Case Range Statement ..
Walter Bright
newshound1 at digitalmars.com
Thu Jul 9 19:08:48 PDT 2009
Jérôme M. Berger wrote:
> Walter Bright wrote:
>> Nick Sabalausky wrote:
>>> "Walter Bright" <newshound1 at digitalmars.com> wrote in message
>>>> It's handy when you want to prefix one expression to another, as in:
>>>>
>>>> (foo(), x + 3)
>>>
>>> I guess I'm not familiar with that syntax. What does that do and for
>>> what purpose?
>>
>> They're called Comma Expressions, and the left operand is evaluated
>> first, its result discarded, then the right operand is evaluated and
>> forms the type and result of the Comma Expression.
>>
> I've always felt they were useless and confusing. What's the
> advantage of "y = (foo(), x + 3);" over "foo(); y = x+3;"?
When you only see the x+3 because you're recursively walking the tree
generating code.
>> It's handy for things like rewriting ++e so it can be used more than
>> once but is only evaluated once:
>>
>> (tmp = ++e, tmp)
>
> Uh? How is that different from "++e"
You can then use tmp more than once with only one increment of e.
More information about the Digitalmars-d
mailing list