Hi, The attached code emits a mysterious error:
$ g++ -c foo.cc foo.cc: In function 'int main()': foo.cc:13: error: '<anonymous enum>' is/uses anonymous type foo.cc:13: error: trying to instantiate 'template<class T> void operator<<(MyClass&, const T&)' $ The compiler apparently fails to see that the anonymous enum can be cast to an integer. -- Summary: operator<< and anonymous enum Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: papadopo at shfj dot cea dot fr CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: sparc-sun-solaris2.8 GCC host triplet: sparc-sun-solaris2.8 GCC target triplet: sparc-sun-solaris2.8 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21514