This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/38613] extern template suppresses VFT but should not
- From: "hstong at ca dot ibm dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 23 Dec 2008 22:57:38 -0000
- Subject: [Bug c++/38613] extern template suppresses VFT but should not
- References: <bug-38613-17113@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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