On Monday, 31 August 2015 at 12:43:25 UTC, drug wrote:
On 31.08.2015 15:28, Andrea Fontana 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.

Which is the problem in your case?
No, in my case there is no problem, I'm curious. I guess that string mixins sometimes may look like a hack.

IMHO they are a hack. That's why they should be used with caution (and why using them feels so good ^_^ ). But I don't see how mixing arbitrary code instead of string would make them less a hack. Template mixin allow only declarations for exactly that reason AFAIK.

Reply via email to