As describing the problem in words is rather tricky, I'll stick to just listing the simplified code and the error message: ---- test.cpp ---- template<class X> class SortedList { typedef bool (X::*largerThanMethodType)(const X &) const; SortedList(largerThanMethodType cm = &X::operator>); } ---- g++ test.cpp ---- test.cpp:5: internal compiler error: in cp_lexer_peek_nth_token, at cp/parser.c:479 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. For Debian GNU/Linux specific bug reporting instructions, see <URL:file:///usr/share/doc/gcc-4.0/README.Bugs>.
-- Summary: 'template class/operator overloading/default argument' internal compiler error Product: gcc Version: 4.0.1 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gcc at vanviegen dot net CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i486-linux-gnu GCC host triplet: i486-linux-gnu GCC target triplet: i486-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22454