It cannot be done as requested. For some reason (I'm not sure about the rationale) explicit (i.e full) specialization of a member template is only allowed when the enclosing class is also explicitly (i.e fully) specialized. This requirement is explicitly spelled out in the language standard (see 14.7.3/18 in C++98, C++03 and 14.7.3/16 in C++11).
At the same time, partial specializations of member class templates are allowed, which in many cases can be used as a workaround (albeit an ugly one). But, obviously, it is only applicable to member class templates. When it comes to member function templates, an alternative solution has to be used.
For example, a possible workaround is to delegate the call to a static member of a template class and specialize the class instead (which is often recommended as a better idea than specialization of function templates http://www.gotw.ca/publications/mill17.htm)
template <class T>
class MyClass
{
template <int N, typename DUMMY = void> struct Func {
static void func() { printf("unspecialized\n"); }
};
template <typename DUMMY> struct Func<0, DUMMY> {
static void func() { printf("specialized\n"); }
};
template <int N> void func() { Func<N>::func(); }
};