On Saturday, 22 December 2018 at 03:44:09 UTC, Timoses wrote:

Awesome hack!
Being a hack, it would be even nicer if it worked ouf of the box:

    mixin template foo(bool b)
    {
        int _impl() { writeln(b); return int.init; }
        int _ipml2 = _impl();
    }

vs

    mixin template foo(bool b)
    {
        writeln(b);
    }

I think this is the closest we can come to it:

mixin template Execute(alias p)
{
    auto __execute__()
    {
        p();

        return 0;
    }
    auto __unused__ = __execute__();
}

mixin template MyTemplate(int a)
{
    mixin Execute!({
        import std.stdio : writeln;
        writeln(a);
    });
}

void main()
{
    mixin MyTemplate!10;
}

Reply via email to