Cannot alias expression

John Colvin john.loughran.colvin at gmail.com
Mon Oct 21 11:42:26 PDT 2013


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

Also:

     struct S{}

     template B(alias A)
     {
         alias B = A;
     }
     template C(A ...)
     {
         alias C = A[0];
     }
     pragma(msg, B!int); //Error: template instance B!(int)
           //does not match template declaration B(alias A)
     pragma(msg, B!S); // S
     pragma(msg, C!int); // int
     pragma(msg, C!S); // S


More information about the Digitalmars-d-learn mailing list