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