------- 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

Reply via email to