I cannot compile the following simple program with the 3.2.3 g++ compiler.
#include <iostream> #include <typeinfo> using namespace std; class A { public: template <typename Type> void method(void) { cout << "hello " << typeid(int).name() << endl; } }; template <class ClassA, typename Type> void run(void) { typedef void (ClassA::*pMethod)(void); pMethod p = &ClassA::method<Type>; // line 23, error message A a; (a.*p)(); } int main(void) { run<A, int>(); return 0; } I get the error message: [EMAIL PROTECTED] % /usr/bin/g++ test.cpp test.cpp: In function `void run()': test.cpp:23: syntax error before `>' token While on the SOLARIS, Windows or on Linux with the Portland Compiler this is no problem to compile. A pointer to a template method of a non-template class is no problem, since this works for line 23: pMethod p = &A::method<Type>; // line 23, error message However templatizing this to ClassA is now suddenly a problem. Your help will be most appreciated. -- Summary: Pointer to template method of a class A, does not work in template context for that class A Product: gcc Version: 3.2.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: Erik dot Bouts at Shell dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34264