I get a parse error in B::i() in the following code, which is inconsistent with not getting a parse error in B::g(). class A { public: template<class T> void f() {} }; class B { public: void g() { A a; a.f<double>(); } template<class T> void h() { A a; a.template f<double>(); } template<class T> void i() { A a; a.f<double>(); } };
*** This bug has been marked as a duplicate of 12622 ***