可能重複:
C++ template member function of template class called from template function如何調用模板成員函數?
template<class T1>
class A
{
public:
template<class T0>
void foo() const {}
};
template<class T0,class T1>
void bar(const A<T1>& b)
{
b.foo<T0>(); // This throws " expected primary-expression before ‘>’ token"
}
我可以把它改成
b->A<T1>::template foo<T0>();
它編譯罰款。不過我也可以把它改成
b.A<T1>::template foo<T0>();
它也編譯得很好。是嗎?
如何在原始代碼的意義上正確調用模板成員函數?
難道我們知道這兩種說法有什麼實際編制是什麼意思?在這個「熟化」的例子中,他們編譯,但在我真正的程序中,這不能編譯。 – ritter