That is not allowed. You cannot fully specialize a member of a class template that has not been itself fully specialized.
Per paragraph 14.7.16 of the C++11 Standard:
In an explicit specialization declaration for a member of a class template or a member template that appears in namespace scope, the member template and some of its enclosing class templates may remain unspecialized, except that the declaration shall not explicitly specialize a class member template if its enclosing class templates are not explicitly specialized as well. [...]
Also, paragraph 14.7.3/15 of the C++11 Standard says:
A member or a member template may be nested within many enclosing class templates. In an explicit specialization for such a member, the member declaration shall be preceded by a
template<>
for each enclosing class template that is explicitly specialized. [ Example:template<class T1> class A { template<class T2> class B { void mf(); }; }; template<> template<> class A<int>::B<double>; template<> template<> void A<char>::B<char>::mf();
—end example ]