Special Code String for mixins
Stefan Koch
uplink.coder at googlemail.com
Wed Mar 14 19:30:10 UTC 2018
On Wednesday, 14 March 2018 at 15:50:13 UTC, Jonathan Marler
wrote:
> On Wednesday, 15 March 2017 at 13:50:28 UTC, Inquie wrote:
>> [...]
>
> I've got a PR for dmd (https://github.com/dlang/dmd/pull/7988)
> that implements "interpolated strings" which makes generating
> code with strings MUCH nicer, i.e.
>
> string generateFunction(string attributes, string returnType,
> string name, string args, string body)
> {
> import std.conv : text;
> return text(iq{
> // This is an interpolated string!
> $(attributes) $(returnType) $(name)($(args))
> {
> $(body)
> }
> });
> }
>
> // Let's use it:
> mixin(generateFunction("pragma(inline)", "int", "add", "int a,
> int b", "return a + b;"));
>
> assert(100 == add(25, 75));
If you do that give the closing brace a suffix
More information about the Digitalmars-d
mailing list