struct A
{
template<int>
void foo()
{}
};
int main()
{
A a;
a.foo<0>(); // ok
a.template foo<0>(); // also ok
}
Очевидно, a.foo<0>(); более кратким, интуитивным и выразительным, чем a.template foo<0>(); ,
Почему C++ разрешает a.template foo<0>(); даже если a.foo<0>(); достаточно?