On Monday, 31 August 2015 at 11:06:40 UTC, drug wrote:
On 31.08.2015 13:57, Andrea Fontana wrote:
Just create a function that return a string with those three
lines and
mixin it!
Like:
import std.stdio;
string toMix( string a, string b, string c)
{
return `string a = "` ~ a ~ `";` ~ `string b = "` ~ b ~
`";`
`string c = "` ~ c ~ `";`;
}
void main()
{
{
mixin(toMix("hello", " world", " 1"));
writeln(a,b,c);
}
{
mixin(toMix("hello", " world", " 2"));
writeln(a,b,c);
}
}
As usual in D the answer is simple.)
But sometimes string mixins aren't desired, it would be nice to
mixin the code, not strings.
That's what template mixins are for (although in your example
string mixins are better suited imho). You may want to have a
look at
https://blog.dicebot.lv/posts/2015/08/OOP_composition_with_mixins
or of course http://dlang.org/template-mixin.html