Mixin template functions are ignored in struct

Adam D. Ruppe via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Oct 14 14:41:32 PDT 2014


On Tuesday, 14 October 2014 at 21:21:33 UTC, tcak wrote:
> Anyway, that suggested usage is making my work harder. I am 
> putting that mixin in many struct and defining each method one 
> by one in that way doesn't seem like suitable to me.

You could rename the method in the struct then mixin the rest. 
Like

private mixin template TestCommonMethods(){
	public bool apply( int d, int e ){
		return false;
	}
}

public struct Test{
	public mixin TestCommonMethods;

	public bool apply2( char c ){ // now named apply2
		return true;
	}
}

void main(){
	Test t;
	t.apply( 5, 3 ); // works
         t.apply2('c'); // also works
}



The mixin template might also define an apply function that just 
forwards the call to the other name, similarly to how a final 
method in a class or interface might call a virtual function to 
allow customization.


More information about the Digitalmars-d-learn mailing list