Re: mixin template can't contain statements: workaround?
On Sun, 15 Mar 2015 13:28:33 +, ketmar wrote: template Foo(int a, string b) { import std.format : format; enum Foo = q{ { import std.conv : to; return %2$s+to!string(%1$s); } }.format(a, b.stringof); } positional args, syntax highlighting, usage like `mixin(Foo!(42, z));`. maybe this will help. ah, that `+`... ;-) signature.asc Description: PGP signature
Re: mixin template can't contain statements: workaround?
On Sat, 14 Mar 2015 18:20:47 -0700, Timothee Cour via Digitalmars-d-learn wrote: Why can't we allow mixin templates to contain statements, as is the case for regular mixins? Is there a workaround? here's a dummy example: template mixin Foo{ //some statement, eg: 'return;' } void fun(){ mixin Foo; } Note that I can do this with a regular mixin, but template mixins are cleaner (esp in more complex examples). template Foo(int a, string b) { import std.format : format; enum Foo = q{ { import std.conv : to; return %2$s+to!string(%1$s); } }.format(a, b.stringof); } positional args, syntax highlighting, usage like `mixin(Foo!(42, z));`. maybe this will help. signature.asc Description: PGP signature
mixin template can't contain statements: workaround?
Why can't we allow mixin templates to contain statements, as is the case for regular mixins? Is there a workaround? here's a dummy example: template mixin Foo{ //some statement, eg: 'return;' } void fun(){ mixin Foo; } Note that I can do this with a regular mixin, but template mixins are cleaner (esp in more complex examples).
Re: mixin template can't contain statements: workaround?
On Sunday, 15 March 2015 at 01:20:55 UTC, Timothee Cour wrote: Why can't we allow mixin templates to contain statements, as is the case for regular mixins? Is there a workaround? here's a dummy example: template mixin Foo{ //some statement, eg: 'return;' } void fun(){ mixin Foo; } Note that I can do this with a regular mixin, but template mixins are cleaner (esp in more complex examples). Wouldn't the most basic explanation be that templates cannot contain statements, therefore mixin templates can't either?