Can I pass the base class type thought template parameter? something like this:

class MyType { }

class A(T)
{
    void doSomething() { }
}

class B(T)
{
    void doSomething() { }
}

// this class shared stuff to deal with A and B
class C(T) : T!MyType
{
    void doSOmethingElse() { }

    override void doSomething()
    {
        doSOmethingElse();
        super.doSomething();
    }
}

then do something like this:

alias Foo = C!A;
alias Baa = C!B;

instead of:

class Foo : A!MyType
{
    void doSOmethingElse() { }

    override void doSomething()
    {
        doSOmethingElse();
        super.doSomething();
    }
}

class Foo : B!MyType
{
    void doSOmethingElse() { }

    override void doSomething()
    {
        doSOmethingElse();
        super.doSomething();
    }
}

note the body is the same, what changes is the base class. I'd like to avoid repeating myself when the body is the same and only the base class changes.



Reply via email to