Код, описывающий мои пожелания: template <class X> struct base { template <class Y> void foo() { } }; template <class Z> struct derived : public base<Z> { void bar() { this->foo<int>(); } }; int main() { } Этот код не компилируется: test.cpp: In member function ‘void derived<Z>::bar()’: test.cpp:14: error: expected primary-expression before ‘int’ test.cpp:14: error: expected `;' before ‘int’ Как сделать так, что бы компилировался, не пойму? :)