there seems to be a possibly a regression in c++ 4.0.2 / 4.1 and newer depending on if BREAK and WORKAROUND is not defined in the attached testcase.
I'm not 100% sure if this is defined behavior or not, or if the WORKAROUND is actually the correct solution. So it varies between wrong-code, accepts-invalid and invalid testcase. Input needed. -- Summary: template specialisation not always found Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mueller at kde dot org GCC host triplet: i686-unknown-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25855