On Monday, 21 October 2013 at 12:58:55 UTC, John Colvin wrote:
I suspect I'm being very dumb here, but I can't get my head around this:

    template B(alias A)
    {
        alias B = A;
    }
    template C(A ...)
    {
        alias C = A[0];
    }
    static assert(B!1 == 1); //fine
static assert(C!1 == 1); //Error: cannot alias an expression 1

I think this is a good match for a gold collection of "awkward mismatch of template alias vs normal alias". I am quite surprised former template work actually, aliases are not supposed to handle expressions at all. But magic of template alias parameter turns expression into symbol and here we go.

Reply via email to