Defining some stuff for each class in turn

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Thu Oct 1 17:51:27 PDT 2009


Phil Deets wrote:
> On Thu, 01 Oct 2009 12:53:46 -0500, Andrei Alexandrescu 
> <SeeWebsiteForEmail at erdani.org> wrote:
>>
>> interface Comparator(T)
>> {
>>      int opCmp(Comparator!T rhs);
>>      mixin(Impl) // for each implementation Impl
>>      {
>>          int opCmp(Impl rhs);
>>          override int opCmp(Comparator!T rhs)
>>          {
>>              return opCmp(cast(Impl) rhs);
>>          }
>>      }
>> }
>>
> 
> I like that you can use this in interfaces too. It seems to allow for 
> something similar to multiple inheritance, but presumably without the 
> implementation difficulty.
> 
> Phil Deets

That's a great point. To compare this feature with Scala's mixins (which 
I studied and now feel are a good feature), my understanding is that 
Scala mixins are an interface plus a default implementation. The feature 
proposed above is an interface with a prescribed implementation. That 
way, Scala mixins seem to be somewhat more flexible.

Andrei



More information about the Digitalmars-d mailing list