Template question about alias

Bill Baxter dnewsgroup at billbaxter.com
Sat Mar 22 22:41:03 PDT 2008


Edward Diener wrote:
> 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.

I'm not sure what you're talking about anymore.  But it sounds like 
maybe you figured it out for yourself in a later message.  If not please 
ask again!

--bb



More information about the Digitalmars-d mailing list