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>();
достаточно?