Please "CC" me as I'm not subscribed.

I have the following program segment (cutting down to bare minimum). This has 
worked previously with G++ 3.3.* and earlier.

Classes cut down to bare minimum obviously - the "real" ones made use of "X".

class  A  {
public:
        int     field1;
};

template<typename X> class  B : public A  {
public:
        int     field2;
};

template<typename X> class C : public B<X>  {
public:
        C(int k)  { field1 = k;  }      
        //  G++ 3.4.3 complains that "field1" is not defined
        void setk(int k) { field1 = k; }
        //  Likewise it complains.
};

main()
{
        C<int> p(17);

        return  0;
}

The problem goes away if I put "this->field1" in there instead of bare 
"field1" thus

C(int k)  { this->field1 = k;  }        
void setk(int k) { this->field1 = k; }

-- 
John Collins Xi Software Ltd www.xisl.com

Reply via email to