Template question about alias
Edward Diener
eddielee_no_spam_here at tropicsoft.com
Sat Mar 22 18:28:19 PDT 2008
Bill Baxter wrote:
> Edward Diener wrote:
>> Another D template question.
>>
>> I am assuming that one can not create a variable which refers to a
>> template instance, but one can create an "alias" for a template
>> instance, ie.
>>
>> template MyTemplate(T) { T data; /* other decldefs ... */};
>> MyTemplate!(int) aname; // illegal
>
> This looks like the declaration of a class template instantiated for
> int. So I'm glad that doesn't create an alias. It would be very
> confusing.
>
>> alias MyTemplate!(int) aname; // legal
>>
>> Is this correct ? If it is so, why did D not just scrap the use of
>> 'alias' in this case and allow the first form, 'MyTemplate!(int) aname;'
>
> Because 'alias' is how you create type aliases in D. I don't get why
> you'd view dispensening of the 'alias' there a benefit.
If the first syntax was normally illegal, then having to type alias
would be redundant if the first syntax were to be automatically
considered an alias and be made legal. However I am told by another
replier that the first syntax can sometimes be considered legal.
More information about the Digitalmars-d
mailing list