import std.stdio : writeln;
final void foo( ref int val )
final void foo( ref string val )
mixin template FooThree()
final void foo( ref float val )
string TheFollowing( Mixins... )()
string strMixinName = "mixin_" ~ __traits( identifier, Mixin );
strOutput ~= "mixin " ~ __traits( identifier, Mixin ) ~ "!() " ~ strMixinName ~ ";";
strOutput ~= "static foreach( Member; __traits( allMembers, " ~ strMixinName ~ " ) )";
strOutput ~= "\tmixin( \"alias \" ~ Member ~ \" = " ~ strMixinName ~ ".\" ~ Member ~ \";\" );";
mixin( TheFollowing!( FooOne, FooTwo, FooThree ) );
final void write( int val )
final void write( string val )
final void write( float val )
static assert( __traits( getOverloads, LookAtMe, "foo" ).length == 3, "Incorrect number of foo overloads! Found " ~ __traits( getOverloads, LookAtMe, "foo" ).length.stringof ~ ", expected 3" );
int main( string[] args )
__traits( getOverloads, LookAtMe, "foo" ).length.writeln;