In C++11 see [temp.inst]/1:
Unless a class template specialization has been explicitly instantiated (14.7.2) or explicitly specialized (14.7.3),
the class template specialization is implicitly instantiated when the specialization is referenced in a context
that requires a completely-defined object type or when the completeness of the class type affects the se-
mantics of the program. [...]
So if a particular specialization of class template is explicitly instantiated, it doesn't get implicitly instantiated. Note that "specialization" in the standard includes what most programmers call an "instantiation" of the generic version. When you declare a separate version for one particular set of template arguments, it's called an "explicit specialization".
In this case, an implicit instantiation would happen if it were not for the explicit instantiation, because you're using the class type in a way that requires it to be complete.
Note that this particular paragraph doesn't distinguish between explicit instantiation declarations and explicit instantiation definitions. Indeed, when a class template specialization is explicitly instantiated, regardless of whether it's an explicit instantiation definition or an explicit instantiation declaration, the full definition of the class template is required to be available. But the difference between an explicit instantiation definition and an explicit instantiation declaration of a class template specialization is that an explicit instantiation definition will also instantiate the definitions of all the member functions and static data members of the class template specialization, whereas an explicit instantiation declaration will only instantiate their declarations. In the latter case, the definitions of the member functions and static data members would be potentially subject to implicit instantiation at a later point in the translation unit.