Eventuali duplicati:
C++ template member function of template class called from template functionCome chiamare una funzione membro template?
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"
}
posso cambiarlo per
b->A<T1>::template foo<T0>();
che compila bene. Tuttavia posso anche cambiarlo a
b.A<T1>::template foo<T0>();
che compila anche bene. eh?
Come si fa correttamente chiamare la funzione di membro template nel senso del codice originale?
noi conosciamo che cosa le due affermazioni che effettivamente compilare è significano? In questo esempio "cotto down" compilano, ma nel mio programma vero questa non viene compilato. – ritter