Jak wywołać funkcję członka szablonu? [duplikować]
Możliwy duplikat:
Funkcja szablonu C ++ klasy szablonowej wywoływana z funkcji szablonu
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"
}
Mogę to zmienić
b->A<T1>::template foo<T0>();
który dobrze się kompiluje. Jednak mogę również zmienić to na
b.A<T1>::template foo<T0>();
który również dobrze się kompiluje. eh?
Jak poprawnie wywołać funkcję członka szablonu w rozumieniu oryginalnego kodu?