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