Edward PieÅkowski <edek.pienkowski@xxxxxxxxx> writes: > template <class T> // THIS LINE ADDED > class BB { > std::shared_ptr<AA> a_ptr; > public: > void something () { > this->a_ptr->doSomething<CC> (); // FAILS > a_ptr->doSomething<CC> (); // OK > AA().doSomething<CC> (); // OK > } > }; This is the rather obscure case where you need to use a template qualifier. You need it to tell the parser that you are referring to a member template within a template function. You need to write this->a_ptr->template doSomething<CC> (); Ian