dynamic classes and duck typing
    KennyTM~ 
    kennytm at gmail.com
       
    Sat Nov 28 07:14:52 PST 2009
    
    
  
On Nov 28, 09 22:00, bearophile wrote:
> Walter Bright:
>> and then s.foo(3), if foo is not a compile time member of s, is
>> rewritten as:
>>      s.opDynamic!("foo")(3);
>
> I don't understand, isn't this the right translation?
> s.opDynamic("foo", 3);
> If the "foo" name is known at compile time only (as in all C# examples and in Python) you can't use a template argument.
> (And then it becomes useful to have associative arrays that are fast when the number of keys is small,<  10).
>
> Bye,
> bearophile
Probably because you can write
Variant myOpReallyDynamic(string name, Variant[] s...) {
    ...
}
Variant opDynamic(string name)(Variant[] s...) {
   return myOpReallyDynamic(name, s);
}
but not the other way round.
    
    
More information about the Digitalmars-d
mailing list