------- Additional Comments From igodard at pacbell dot net 2005-09-11 15:44 ------- Nah, tried:
struct foo { template<bool b> void f(); template<typename T, bool b> void g(); }; template<> void foo::f<true>() {} template<> void foo::f<false>() {} template<typename T, bool b> void foo::g<T, true>() {} template<typename T, bool b> void foo::g<T, false>() {} which gets me: ~/ootbc/members/src$ g++ foo.cc foo.cc:13: error: partial specialization `g<T, true>' of function template foo.cc:15: error: partial specialization `g<T, false>' of function template foo.cc:15: error: redefinition of `void foo::g()' foo.cc:13: error: `void foo::g()' previously declared here ~/ootbc/members/src$ fg -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23823