The following code fails to compile:

class A {
protected:
    int i;
};

class B {
    class C : public A {
    public:
        void foo(A a) { 
            a.i = 1;
        }
    };
};

int main()
{

}

nest2.cpp: In member function 'void B::C::foo(A)':
nest2.cpp:3: error: 'int A::i' is protected
nest2.cpp:10: error: within this context

I can't find anything in the standard that says this should be invalid, but
perhaps I missed it. Thanks for your time and efforts.


-- 
           Summary: nested inherited class can't access protected members of
                    base class
           Product: gcc
           Version: 4.2.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: darkwingz at yahoo dot com


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

Reply via email to