This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/33516] [4.0/4.1/4.2/4.3 Regression] Rejects typedef qualified name-lookup



------- Comment #2 from bangerth at dealii dot org  2007-09-22 04:14 -------
(In reply to comment #1)
> What I can find that supports rejecting the code is:
> 
> 3.4.3(1) "Qualified name lookup":
> 
> "If the name found is not a class-name (clause 9) or namespace-name 
> (7.3.1), the program is ill-formed."
> 
> 7.1.3 "The typedef specifier" it says:
> 
> "A name declared with the typedef specifier becomes a typedef-name."
> 
> but then the last example should be rejected as well?

I think this isn't the problem you run into. The real problem with the
typedef is that if you use typedef_name::nested_name from within the
class that typedef_name points to, then typedef_name is still an incomplete
type because you haven't reached the closing brace yet. In your last
example, you *have* reached the closing brace and the pointed class is
complete so using typedef_name::nested_name succeeds.

W.


-- 

bangerth at dealii dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bangerth at dealii dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33516


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]