dropping parentheses on template instantiation

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sun Oct 5 11:50:40 PDT 2008


Tom S wrote:
> Andrei Alexandrescu wrote:
>> I just realized something different. After making an informal review 
>> of some code, I saw that a large percentage of template instantiations 
>> only need ONE argument.
>>
>> This makes me think, with the old "!" notation, parentheses could be 
>> dropped entirely without prejudice:
>>
>> auto covariance = Matrix!real(n, n);
>> auto normalized = SparseVector!double(n);
>>
>> and so on.
>>
>> To the unbridled joy of the enemies of the Sad Pirate, the dot won't 
>> work for template instantiation because without the parentheses it 
>> DOES engender ambiguity.
>>
>> Now say we take the following route:
>>
>> 1) We find something different from shouting
>>
>> 2) We drop the parentheses for 1 argument
>>
>> That sounds like a possible winner. In this case the "#" becomes 
>> considerably more attractive, in fact very attractive exactly because 
>> it looks unlike any letter:
>>
>> auto covariance = Matrix#real(n, n);
>> auto normalized = SparseVector#double(n);
>>
>> Ideas?
> 
> Skip 1) and a lot of folks will be happy with 2) !!!!!112  /* just to 
> trigger your phobia */

Gotta go get my medication pronto!(damn, exclamation again)

I meant:

Gotta go get my medication pronto.(no more exclamation)


Andrei



More information about the Digitalmars-d mailing list