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

Reply via email to