Thread overview
overriding alias symbols
Oct 12, 2016
Superstar64
Oct 12, 2016
Stefan Koch
Oct 12, 2016
Superstar64
Oct 12, 2016
Superstar64
October 12, 2016
I'm trying to use mixin templetes to provide generic default implementations.
Something like this:
---
abstract class MyAbstractClass
{
    void myAbstractMethod();
}

mixin template defaultImplentation(alias Method, T...)
{
    override void Method()
    {
    }
}

class MyClass : MyAbstractClass
{
    mixin defaultImplentation!(myAbstractMethod);
}
---
Anyone have any ideas?
October 12, 2016
On Wednesday, 12 October 2016 at 22:14:32 UTC, Superstar64 wrote:
> I'm trying to use mixin templetes to provide generic default implementations.
> Something like this:
> ---
> abstract class MyAbstractClass
> {
>     void myAbstractMethod();
> }
>
> mixin template defaultImplentation(alias Method, T...)
> {
>     override void Method()
>     {
>     }
> }
>
> class MyClass : MyAbstractClass
> {
>     mixin defaultImplentation!(myAbstractMethod);
> }
> ---
> Anyone have any ideas?

override void mixin (__traits(identifier, Method)) ...  ?
October 12, 2016
On Wednesday, 12 October 2016 at 22:46:14 UTC, Stefan Koch wrote:
> override void mixin (__traits(identifier, Method)) ...  ?
Doesn't work:
test.d(8): Error: no identifier for declarator void
test.d(9): Error: found '{' when expecting ')'
test.d(10): Error: found '}' when expecting ';'
I could make the whole function a mixin but I don't wanna hurt my compile times.

October 12, 2016
On Wednesday, 12 October 2016 at 22:14:32 UTC, Superstar64 wrote:
> ...
Nevermind I just realized I can do this:
---
abstract class MyAbstractClass
{
    void myAbstractMethod();
}

void defaultImplentation(T...)
{
}

class MyClass : MyAbstractClass
{
    override void myAbstractMethod()
    {
        return defaultImplentation!();
    }
}