Backporting to 4_0 the latest friend bits

Kriang Lerdsuwanakij lerdsuwa@users.sf.net
Sat May 7 16:41:00 GMT 2005


Mark Mitchell wrote:
> Those are somewhat above my pain threshold.  Is there something else 
> that we could do for the 4.0 branch?  Like issue a warning and ignore 
> the friend declaration?  

Sorry for long delay.  I just got back from a trip (but I will be away
next week as well.)  Doing what you suggest, ignoring friend declarations,
would break other valid code now accepted by 4.0 such as below:

   class A {};
   namespace N {
     class B {
       friend class A;
       // more stuff here
     };
     class A {
       // accessing B private/protected members
     };
   }

 > Am I correct in understand that the problem
 > case is that the friend declaration looks like "friend class C" where
 > there is a C in a containing scope, but no C in the class with the
 > friend declaration?
The problem here is name conflict of C in two different scope
via using declaration/directive.

I see that either the patch (actually only one of the two fixes this issue:
http://gcc.gnu.org/ml/gcc-patches/2005-03/msg01283.html ) applied or
leave the current behavior as is.  It would do more harm than good
if we try to do something different.

--Kriang



More information about the Gcc mailing list