------- Comment #5 from bangerth at dealii dot org  2007-04-08 00:54 -------
(In reply to comment #4)
> ive no idea which part of the standard should imply/allow this. if one 
> replaces
> "typename T::privIC * priv" with "T * priv", its valid and it compiles. I
> thought T::privC is equally accessible & 'incomplete' as T itself when
> instantiating the template.

Yes, but the difference is that we know what T is (and that it exists)
because it was given as a template argument. We don't know this about
T::privIC -- it may not exist for certain types given as T, but we can't
know without looking into T, which we can't because T isn't complete.

I am confident that the code isn't valid because at the point of use
T::privIC hasn't been declared yet. Since in addition none of the other
compilers you cite support this idiom, I'll close this PR.

W.


-- 

bangerth at dealii dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |INVALID


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

Reply via email to