digitalmars.D.learn - Interface inheritance simplification
- JS (36/36) Jul 13 2013 It would be nice if this is possible:
It would be nice if this is possible: interface A // : gets inserted by the mixin { mixin sometemplate!B; // Is able to make A extend B } or interface A : mixin sometemplate!B { // methods get inserted by the template } instead of interface A : B { mixin sometemplate!B; } which locks A to B. One, I imagine can easily accomplish the same task with mixins and static if's but it requires writing code in two places. e.g., interface A : mixin somtemplateA!B { mixin sometemplateB!B; } The point is to simplify boilerplate code... e.g., write interfaces and templates that automatically write default methods for you. I think ideally something like the 2nd example would work best: interface A : mixin sometemplate!B { } so that we know A herits B but the template is able to insert methods into the body of the interface WITHOUT having to manually call another mixin to do so. One can sort of achieve this with a mixin but it's not a good way. e.g., interface A : mixin("B { void method(); ") } I *think* will work but the correct syntax is hidden...
Jul 13 2013