In the following code, one templatized struct's member function calls another templatized struct's templatized member function. GCC 3.3.3 reports a parse error in the line labeled "This doesn't work!". I've found that if I change the instantiation of struct inner to use an 'int' rather than 'T', GCC will compile. Is this correct behavior, or is it a GCC bug?
===== CODE FOLLOWS ===== template<typename A> struct inner { template<typename B> void test() { } }; template<typename T> struct outer { void go() { // inner<int> ().test<int>(); // This works! inner<T> ().test<int>(); // This doesn't work! } }; ===== END OF CODE ===== -- Summary: A templatized struct's member function can't call another templatized struct's templatized member function Product: gcc Version: 3.3.3 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mrstephengross at hotmail dot com CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21537