Thread overview | ||||||
---|---|---|---|---|---|---|
|
October 12, 2016 overriding alias symbols | ||||
---|---|---|---|---|
| ||||
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 Re: overriding alias symbols | ||||
---|---|---|---|---|
| ||||
Posted in reply to Superstar64 | 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 Re: overriding alias symbols | ||||
---|---|---|---|---|
| ||||
Posted in reply to Stefan Koch | 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 Re: overriding alias symbols | ||||
---|---|---|---|---|
| ||||
Posted in reply to Superstar64 | 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!();
}
}
|
Copyright © 1999-2021 by the D Language Foundation