------- Comment #4 from hstong at ca dot ibm dot com 2008-12-23 22:57 ------- The proposed wording (N1987) for 14.7.2 paragraph 7 says:
An explicit instantiation declaration that names a class template specialization has no effect on the class template specialization itself (except for perhaps resulting in its implicit instantiation). It also says: An explicit instantiation that names a class template specialization is an explicit instantiation of the same kind (declaration or definition) of each of its members that has not been previously explicitly specialized in the translation unit containing the explicit specialization, except as described below. ==== This leads to an interpretation where explicit instantiation declaration of a class template specialization is equivalent to doing the same to any and all of its members. Of course, the user cannot explicitly do so for each of the members if implicitly declared member functions are present. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38613