the following code fails on all g++ versions I have: test.cpp:9: error: explicit specialization in non-namespace scope class A<T>
template<class T> class A { template<bool b> class B { }; template<> class B<false> { }; }; but works fine with fictive template parameter: template<class T> class A { template<bool b, int fictive_ = 0> class B { }; template<int fictive_> class B<false, fictive_> { }; }; -- Summary: explicit specialization in non-namespace scope strange behavior Product: gcc Version: 4.2.1 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: isenbaev at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34726