Template class incomplete specialization
问题 I came across an interesting point that I wasn't able to explain or find an explanation for. Consider the following template definition (compiled with mingw g++ 4.6.2): template <typename T, typename S> class Foo { public: void f(){} void g(){} }; Should we want to, we can fully specialize any single member function: template <> void Foo<char,int>::f() {} But partial specialization fails with an "invalid use of incomplete type 'class Foo<...>'" error: template <typename T, typename S> void