On Tuesday, 30 July 2013 at 07:02:51 UTC, JS wrote:
If I use enum or alias they both have the same problem(The annoying mandatory assignment).

Can you post some more code that exhibits exactly the behaviour you're describing? I can't replicate the problem you're having with the code you provided (nor the code *I* provided).

BTW, is

void Pragma(alias amsg)(string file = __FILE__)

short for

template Pragma(alias amsg)
{
 void Pragma(string file = __FILE__)

or is there some real difference?

They're semantically equivalent. The first form is just shorthand for the second.

I could potential do something like

template Group(alias G1)
{
    void Group(alias G2)(int s)
    {
        writeln(s);
    }
}

Group!("x")("y")(3); // doesn't work,
Group!("x")!("y")(3); // doesn't work

What you're doing here is pretty weird. That code is equivalent to:

template Group(alias G1)
{
    template Group(alias G2)
    {
        void Group(int s)
        {
            writeln(s);
        }
    }
}

And I really have no idea how it *should* behave. It definitely doesn't work on dpaste.dzfl.pl.

Reply via email to