On Wednesday, 23 September 2015 at 19:28:03 UTC, Nick Sabalausky
wrote:
On 09/23/2015 03:18 PM, Chad Joan wrote:
This is why I argued for alternative mixin syntax in D some
... years?
... ago.
It'd be really cool to have a writefln overload that did this:
int somevar = 42;
writefln#("This is ${somevar}");
writefln#("Plus two and you get ${somevar+1}");
Which would just be shorthand for
int somevar = 42;
mixin writefln!("This is ${somevar}");
mixin writefln!("Plus two and you get ${somevar+2}");
I feel like a bit of syntax sugar could go a long way ;)
Yea, the trouble with string mixins is that they're ugly enough
people don't like to use them.
I'd argued in the past for a way to tag a CTFE-able
string-returning function as being intended for mixing-in, so
you could omit the "mixin(...)" part. But we only ever got it
for template mixins. Allowing it for string mixins was too
controversial. :(
I dunno, maybe even a string mixin sugar as simple as this
would be a big help:
mixin!func(args to func here)
ie:
mixin!interp("Some string here")
But I'm guessing the ship's ling since sailed for anything like
that.
What about even just removing the syntax distinction between
string mixins and template mixins?
mixin "int i = 0";
mixin declareI!();
While we're at it, how about optional parens for templates as
well as functions?