xxxxxxxxxx
import std.stdio : writeln;
mixin template FooOne()
{
final void foo( ref int val )
{
val.writeln;
}
}
mixin template FooTwo()
{
final void foo( ref string val )
{
val.writeln;
}
}
class LookAtMe
{
mixin FooOne!();
mixin FooTwo!();
final void write( int val )
{
foo( val );
}
final void write( string val )
{
foo( val );
}
final void write( float val )
{
foo( val );
}
final void foo( ref float val )
{
val.writeln;
}
}
int main( string[] params )
{
LookAtMe temp = new LookAtMe;
temp.write( 42 );
temp.write( 5.4321 );
temp.write( "Oh look at this!" );
return 0;
}