------- Comment #5 from redi at gcc dot gnu dot org  2010-03-27 20:14 -------
With current versions this is only a warning not an error, changing keywords
from rejects-valid to diagnostic

(In reply to comment #3)
> There is no other way to make a member-variable accessible only from all
> objects which are of the same type. Am I wrong?

Yes.

(In reply to comment #4)
> The error doesn't occur if the friend is a template instance, so it really
> doesn't hurt anyone. But it's weird.
> 
> template< int z >
> class F {
>     friend class F<0>; // error only if <0> removed
> };

Well in that case it isn't friends with itself, so not really weird.

This shows that being a template has nothing to do with it:

template< int z >
class F {
    friend class F<z>;
};

warning: class ‘F<z>’ is implicitly friends with itself


-- 

redi at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|rejects-valid               |diagnostic


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

Reply via email to