dropping parentheses on template instantiation

Tom S h3r3tic at remove.mat.uni.torun.pl
Sun Oct 5 11:47:39 PDT 2008


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 */


-- 
Tomasz Stachowiak
http://h3.team0xf.com/
h3/h3r3tic on #D freenode



More information about the Digitalmars-d mailing list