compiling the example code *******(min_example.cpp) #include <stdio.h>
template <int i> class A { public: template <typename T> void print(int j) { printf("i: %i j: %i\n", i, j); } }; template <int j> class B { public: void print(A<j> *a) { a->print<int>(j); } }; int main() { A<23> *a = new A<23>(); B<23> b; a->print<int>(5); b.print(a); return 0; } ******* with the command >g++ min_example.cpp -o min_example gives the error message min_exmpl.cpp: In member function 'void B<j>::print(A<j>*)': min_exmpl.cpp:20: error: expected primary-expression before 'int' min_exmpl.cpp:20: error: expected `;' before 'int' -- Summary: function template in template class cant be called from other template class Product: gcc Version: 4.3.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mrpugh at gmx dot de GCC build triplet: x86_64 GNU/Linux GCC host triplet: x86_64 GNU/Linux GCC target triplet: x86_64 GNU/Linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39458