On Friday, 12 May 2017 at 00:20:13 UTC, سليمان السهمي (Soulaïman
Sahmi) wrote:
Is there a rational behind not allowing statements inside mixin
templates? I know mixin does accept code containing statements,
but using mixin is much uglier. so I was wondering.
example use case:
//---------------------------------
int compute(string)
{
return 1;
}
mixin template testBoilerPlate(alias arg, alias expected)
{
{
import std.format : format;
auto got = compute(arg);
assert(got == expected, "expected %s got
%s".format(expected, got));
}
}
unittest
{
mixin testBoilerPlate("12345", 1);
mixin testBoilerPlate("00" ~ "0", 2 - 1);
}
//--------------------------------
On Friday, 12 May 2017 at 00:20:13 UTC, سليمان السهمي (Soulaïman
Sahmi) wrote:
works for me :
mixin template testBoilerPlate(alias arg, alias expected)
{
auto doit = {
import std.format : format;
auto got = compute(arg);
assert(got == expected, "expected %s got
%s".format(expected, got));
return true;
}();
}