Seems that "class" is ignored at "friend class a" within class definition
scope. This makes some code I have around not to compile. I may perhaps include
a file with all the classes available at the beginning... but it is ugly.
Nowadays I'm using gcc-3.4 instead of gcc-4.x

See below example of code that fails with gcc version >= 4.0


--8<---- demo.cpp, please do g++ -c demo.cpp -----8<--8<
class a;
//class c;  // If uncommented, the code compiles. Otherwise it does not!
class b
{
friend class a;
friend class c;
        a * aa;
        c * cc;
private:
        float p;
};

class a {
        b bb;
        void bp() { float f = bb.p; };
};

class c {
        b bb;
        void bp() { float f = bb.p; };
};
-->8---- demo.cpp, please do g++ -c demo.cpp ----->8-->8


-- 
           Summary: friend class declaration inside class scope ignored
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pato101 at gmail dot com


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

Reply via email to