stdio line-streaming revisited

James Dennett jdennett at acm.org
Thu Mar 29 21:59:49 PDT 2007


kris wrote:
> Andrei Alexandrescu (See Website For Email) wrote:
>> kris wrote:
>>
>>> Frits van Bommel wrote:
>>>
>>>> Yes, call-chaining can only evaluate left-to-right, but the
>>>> parameters *passed* to the calls can be evaluated in any order.
>>>
>>>
>>> That's not at stake here, as far as I'm aware?
>>
>>
>> My understanding is that it was brought up by yourself in an attempt
>> to explain that Cout("Hello, ")(Cin.get) will work properly. There was
>> an old thread mentioned, which deals with another problem entirely. So
>> that doesn't apply. Now I understand that argument has been dropped
>> entirely, and that now there is an argument that Cout("Hello,
>> ")(Cin.get) works due to some other unmentioned reasons.
> 
> Then I politely suggest you are either badly confused, being entirely
> disengeneous, or are drunk ;-)
> 
> There never was any argument of which you claim. I simply noted that
> eval-order had been clarified before, using your usage of "eval-order"
> from within the same post. If you revisit, you'll see that was actually
>  referring to call-chaining instead, so there's perhaps a misuse of terms:
> 
>    Cout.opCall("Hello, ").opCall(Cin.get);
> 
> As you can see, there is only one parameter passed to each call, and
> therefore the order of /parameter/ eval is "not at stake here" (as I
> noted to Frits). 

There are two arguments to the second opCall.  One is
the result of Cout.opCall("Hello, ") and the other is
the result of Cin.get, and they can be evaluated in
either order unless some rule prohibits it.

Please, just address the technical content rather than
flaming.

-- James



More information about the Digitalmars-d mailing list