まとめると
C++11では明示的にするために
a.template test<int>(); がOKになった
当然、a.test<int>();もOK
で、C++03(まで?)では明示は駄目だから
a.test<int>(); にしる

こんな感じか