Pulling some builtin logic out

Kaja kaja.fumei at gmail.com
Mon Mar 31 11:06:56 PDT 2008


Koroskin Denis Wrote:
> 
> Yes, it's a good idea, but your solution introduces virtual function calls  
> that could kill performance.

But most of D's methods are virtual.  Nobody minds that opEquals or toString are virtual and they're used a lot.  Yes, it will be a performance hit for the builtin implementation but would be the same for the programmer defined implementations.  If they're going to have to use a custom class anyway, why not allow them to have the syntax to go with it?  

Often in languages and compilers, you have to choose between flexibility and speed, and that's a deicision for Walter.

> Much better approch would be the following:
> 
> - Provide an "interface" that built-in AAs implement.
> - Allow user-defined types to implement this interface.
> - Allow these derived types to benefit from all the syntax sugar, used by  
> built-in containers.
> - Allow users to replace built-in containers with user-defined ones.  
> (arguable)
> 
> Third point is necessary since there are still some tricks that can't be  
> used by programmer like 'in' operator in AAs.
> This way containers could be replaced by user-defined types partially or  
> completely.

Why couldn't a person use "in" on a user-defined AA?  According to the docs, its overloadable with opIn (but no example on the page so maybe its not supported anymore).



More information about the Digitalmars-d mailing list