On Monday, 21 October 2013 at 19:14:25 UTC, simendsjo wrote:
On Monday, 21 October 2013 at 18:42:27 UTC, John Colvin wrote:
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)
Alias doesn't take primitive types.
Why on earth not?