c++/9937: Failure to lookup base class name when base is template specialization
Wolfgang Bangerth
bangerth@ticam.utexas.edu
Wed Mar 5 15:26:00 GMT 2003
The following reply was made to PR c++/9937; it has been noted by GNATS.
From: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
To: gcc-gnats@gcc.gnu.org
Cc:
Subject: Re: c++/9937: Failure to lookup base class name when base is template
specialization
Date: Wed, 5 Mar 2003 09:21:09 -0600 (CST)
---------- Forwarded message ----------
Date: Wed, 05 Mar 2003 12:19:27 +0100
From: Thomas Witt <witt@ive.uni-hannover.de>
To: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
Subject: Re: c++/9937: Failure to lookup base class name when base is
template specialization
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Wolfgang,
Wolfgang Bangerth wrote:
|>|>14.6/2a [...snip...]
|>
|>Aargh it's 14.6.1/2a. Sorry for that.
|
| Hm, I still don't get it. 14.6 is about name resolution, and while it
| mentions that the name of class itself (without template arguments) is
| injected, it doesn't say anything about the name of base classes. maybe
| it's still that my copy is outdated. The DR you cite explains the matter.
As I said earlier it's from a Technical Corrigendum 1 draft. I shouldn't
have quoted from that document without explicitly saying so.
For details on the TC1 status and procedure you may want to read this.
http://www.cuj.com/experts/2102/sutter.htm
|
| OK, I'll note in the synopsis that it's about a DR. The DR is not in
| resolved state, so I guess people will want to wait with implementing
| until this is settled.
The DR is marked as being part of TC1.
| Should we put this into "suspended" state?
Given the fact that the published std documents will make this a bug any
time soon, I don't think so.
|>Sadly, they are not. This kind of problems tend to prop up when you are
|>dealing with any kind of code generator. Code generators rely heavily on
|>uniform handling of ordinary types and template specialisations.
|
| But they are not in a lot of ways. Think about name lookup for members of
| base classes, etc...
That's a different issues. The problem we are dealing with is not about
templates. It's about template specializations (read a template
instantiated for one specific set of template arguments). These should
and do behave in the same way as ordinary UDTs.
What causes the problem is that derivation from A is handled differently
than derivation from B<int>. From the generators point of view it should
be transparent whether the base is a template specialization or not.
Thomas
- --
Dipl.-Ing. Thomas Witt
Institut fuer Verkehrswesen, Eisenbahnbau und -betrieb, Universitaet
Hannover
voice: +49(0) 511 762 - 4273, fax: +49(0) 511 762-3001
http://www.ive.uni-hannover.de
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQE+Zd0/0ds/gS3XsBoRAnPwAJ96T+isLguJ+BACS1oDk3w4ZvStyQCfbX3o
rRz27E7lmc+5Ipc0XEE2aT8=
=XIOO
-----END PGP SIGNATURE-----
More information about the Gcc-prs
mailing list