dropping parentheses on template instantiation
Sean Kelly
sean at invisibleduck.org
Sun Oct 5 12:35:54 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
It's a bit off-topic, but why are we required to supply an empty
template list when instantiating a type that has all defaulted template
arguments? ie.
class C( T = int, U = int ) {}
auto c = new C!();
auto d = new C; // why can't it be this?
I asked about this a while back but never got an answer.
Sean
More information about the Digitalmars-d
mailing list