Cannot alias expression
John Colvin
john.loughran.colvin at gmail.com
Mon Oct 21 13:20:44 PDT 2013
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?
More information about the Digitalmars-d-learn
mailing list