templateは要素がひとつで同名って条件でtemplate名称を省略できるって
公式のどこかで見た記憶があるんだけど下の例でクラスのAをtemplate名称なしで
使えちゃうのは合法?

template A(T){
 class A{}
 T s; ←A.Aとしてclassを参照するために邪魔になると思われるもの
}

※
auto x = new A!(int).A();
ではなく
auto x = new A!(int)();
として使用できてしまう。