On 31.08.2015 14:36, cym13 wrote:
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
According to these sources that I've seen before I can mixin declarations, not just arbitrary code. Now I guess it's impossible for some reason.

Reply via email to