dropping parentheses on template instantiation

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sun Oct 5 11:18:26 PDT 2008


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?


Andrei

P.S. The Sad Pirate is the emoticon

.(

It doesn't have an eye and is sad, too.



More information about the Digitalmars-d mailing list