dropping parentheses on template instantiation
Alexander Pánek
alexander.panek at brainsware.org
Sun Oct 5 12:16:41 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);
Doesn’t look bad. What about templates with more than one argument or
even value arguments? How would those look?
> P.S. The Sad Pirate is the emoticon
>
> .(
>
> It doesn't have an eye and is sad, too.
I see .() as one-eyed monkey. :|
More information about the Digitalmars-d
mailing list