------- Comment #4 from widman at gimpel dot com 2006-03-31 05:36 ------- Subject: Re: Error diagnostic not issued for unacceptable result of lookup for a name used in a nested-name-specifier
On Mar 30, 2006, at 11:47 PM, Daveed Vandevoorde wrote: > > On Mar 30, 2006, at 4:06 PM, James Widman wrote: <snip> >> "enum N" is not an enumerator name; it's an enumeration name (or >> an /enum-name/ [7.2p1]), so "enum N" cannot be ignored. > > Ah, you're right. It turns out that the grammar in this area > has changed since the 1998 standard (as John Spicer pointed > out to me). The 1998 version of the standard had > > nested-name-specifier: > class-or-namespace-name :: nested-name-specifieropt > class-or-namespace-name :: template nested-name-specifier > > which meant only classes or namespace names were considered. > That could be read as meaning that 3.4.3/1 never was reached > with an enumeration type name, but there is no unanimity on > that reading. > > With the current wording (which was introduced because the > earlier wording didn't correctly deal with template-dependent > qualifiers), it's pretty unambiguous that your example is > ill-formed and we think the standard should not be changed > in that regard. > > I've filed a defect numbered EDGcpfe/7621 to track this. > > Cheers, > > Daveed Vandevoorde > Edison Design Group Thanks; that should help to simplify our lookup routines ever-so- slightly. (: For those with a superstitious bent, I'd like to point out that this week saw a total eclipse of the sun, news of genetically modified pigs (perhaps with wings next), and now it's been revealed that GCC and EDG have the same front end bug for a case where *every other C++ front end* appears to get it right. This is clearly a sign that the end is nigh. It's apocalypse party time. (: -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26950