This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: c++/10261: g++ does not error for bogus |typename| inside a templated class
- From: "Giovanni Bajo" <giovannibajo at libero dot it>
- To: <gcc-gnats at gcc dot gnu dot org>,<gcc-bugs at gcc dot gnu dot org>,<nobody at gcc dot gnu dot org>,<gcc-prs at gcc dot gnu dot org>,<bbaetz at acm dot org>
- Date: Mon, 7 Apr 2003 13:08:36 +0200
- Subject: Re: c++/10261: g++ does not error for bogus |typename| inside a templated class
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&p
r=10261
>> Not a bug. §14.6p5: "The keyword typename shall only be used in template
> > declarations and definitions [...] The keyword typename shall only be
> > applied to qualified names, but those names need not be dependent."
> right, I wasn't complaining about the first two bits, which should be
> erroring, but rather pointing out the second two lines.
Please read again: "The keyword typename shall only be applied to qualified
names, but those names *NEED NOT* be dependent."
In your example, in the second two lines, foo<int>::value_type is a
non-dependent qualified name. Use of typename is allowed but not required.
>Yeah, I think I misread the DR,
Yup, that DR has nothing to do with this.
Giovanni Bajo