Build interface from abstract class

DigitalDesigns DigitalDesigns at
Mon May 28 09:59:50 UTC 2018

Implementing interfaces can be a pain but are necessary.

I like to use abstract classes and provide a base implementation. 
It would be cool if I could use D's awesome meta features to 
extract the interface from the abstract class then build it. This 
requires some funky stuff which I'm not sure D can do

mixin(InterfaceFromAbstractClass!(MyAbstraction, "MyInterface"));

interface MyInterface2 : MyInterface
     final static void baz() { }

abstract class MyAbstraction : MyInterface2
         void foo() { };

InterfaceFromAbstractClass will get all the @InterfaceMembers 
members and declare them in an interface MyInterface.

This avoids all the duplicate code that interfaces has to create.

Is this possible in D?

More information about the Digitalmars-d-learn mailing list