Fully dynamic d by opDotExp overloading

Adam Burton adz21c at googlemail.com
Sun Apr 19 07:04:00 PDT 2009


Denis Koroskin wrote:

> On Sun, 19 Apr 2009 05:40:32 +0400, Steven Schveighoffer
> <schveiguy at yahoo.com> wrote:
> 
>> On Sat, 18 Apr 2009 21:10:27 -0400, Andrei Alexandrescu
>> <SeeWebsiteForEmail at erdani.org> wrote:
>>
>>> Adam Burton wrote:
>>>> Andrei Alexandrescu wrote:
>>>>>> What about using something like '->' for dynamic calls instead of
>>>>>> '.'?
>>>>> That's absolutely useless. If I have to write anything different from
>>>>> "." I might as well write "bloodyMaryBloodyMaryBloodyMary".
>>>>>
>>>>> Andrei
>>>> You could even write 'noodles' but that doesn't really give me a
>>>> reason as to why it's absolutely useless. Please clarify, I thought it
>>>> seemed like a reasonable idea, if it isn't I would like to know why.
>>>
>>> I apologize for the snapping. There's no excuse really, but let me
>>> mention that this thread has been particularly meandering.
>>>
>>> The point of using "." is not syntactic convenience as much as the
>>> ability of the Dynamic structure to work out of the box with algorithms
>>> that use the standard notation.
>>
>> Hm... the thought just occurred to me.
>>
>> At what time are you going to use opDotExp so an entity be used in an
>> algorithm rather than actually defining the functions directly?  For
>> example, if you want to make a class/struct a range, why not just define
>> the functions directly?  It seems odd to define them using opDotExp.
>>
I agree, seems to me templates attempt to acheive the same as dynamic calls 
but in a static way, so expecting a template handle functions that are not 
there for the most part contradicts its very nature. See my reply to BCS as 
a potential way around this by extending templates.
> 
> Variant variantRange = someRange();
> foreach (element; variantRange) {
>     // ...
> }
> 
> Variant forwards all the front/back/etc methods to an underlying range.
See my reply to BCS as a potential way around this by extending templates.




More information about the Digitalmars-d mailing list