another round of call-chaining mystery?

kris foo at bar.com
Thu Mar 29 22:54:05 PDT 2007


James Dennett wrote:
> kris wrote:
> 
>>James Dennett wrote:
>>
>>>kris wrote:
>>
>>[snip]
>>
>>>>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.
>>
>>I think you'll find that call-chaining does not operate in that manner,
>>James? If you look a bit closer, you'll see that the lhs has to be
>>evaluated first, simply to get something to deref the rhs. Further,
>>there is only one argument permitted to the opCall() itself
>>
>>For a fuller description, I suggest you bring it up with Walter instead?
> 
> 
> Walter's post in this thread (<eui80b$19hl$1 at digitalmars.com>)
> seems to confirm my viewpoint as quoted above.  If you still
> don't think so after reading his message, I'd be interested
> if you can explain where Walter's explanation differs from
> mine.
> 
> Regards,
> 
> James.

Simply because that's what Walter led us to believe a long time ago, 
James, and it is how the compiler is implemented. Don't know what else 
to tell you.



More information about the Digitalmars-d mailing list