Mixed up over mixins.

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Aug 20 12:41:14 PDT 2017


On 08/20/2017 12:27 PM, WhatMeWorry wrote:

 >     // Mixins are for mixing in generated code into the source code.
 >     // The mixed in code may be generated as a template instance
 >     // or a string.

Yes, it means that the string must be legal D code.

 >     mixin(`writeln(` ~ `Hello`  ~ `);` );

Yes, that's a D string but the string itself is not legal D code because 
it would be mixing in the following:

     writeln(Hello);

The problem is, there is no Hello defined in the program.

You need to make sure that Hello is a string itself:

     writeln("Hello");

So, you need to use the following mixin:

     mixin(`writeln(` ~ `"Hello"`  ~ `);` );

Ali



More information about the Digitalmars-d-learn mailing list