The error message is : /local_scratch/douze/gcc_cur/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/bits/cpp_type_traits.h: In instantiation of 'std::__is_pod<std::less<int> >': /local_scratch/douze/gcc_cur/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/bits/stl_tree.h:431: instantiated from 'std::_Rb_tree<int, std::pair<const int, A<0> >, std::_Select1st<std::pair<const int, A<0> > >, std::less<int>, std::allocator<std::pair<const int, A<0> > > >' /local_scratch/douze/gcc_cur/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/bits/stl_map.h:124: instantiated from 'std::map<int, A<0>, std::less<int>, std::allocator<std::pair<const int, A<0> > > >' test7.cpp:5: instantiated from 'A<0>' test7.cpp:10: instantiated from here /local_scratch/douze/gcc_cur/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/bits/cpp_type_traits.h:398: error: too many template parameter lists in declaration of 'std::__is_pod<std::less<int> >::<anonymous enum>'
The error appears with gcc 3.4.1 and gcc 4.0.0, but not with 3.3.2 -- Summary: map with a class template + method template fails to compile. Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: douze at enseeiht dot fr CC: gcc-bugs at gcc dot gnu dot org GCC host triplet: 686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19487