$ uname -srm Linux 2.6.11.4 i686 $ g++ -v Reading specs from /opt/compilers/gcc-3.4.3/lib/gcc/i686-pc-linux-gnu/3.4.3/specs Configured with: ../gcc-3.4.3/configure --prefix=/opt/compilers/gcc-3.4.3 --enable-shared --enable-threads --enable-languages=c,c++ Thread model: posix gcc version 3.4.3
Copy and paste at prompt: $ cat > t.cpp << EOF struct A { protected: int foo_; }; template <class T> struct B : public A { }; template <class T> struct C : protected B<T> { int foo () { return A::foo_; } }; EOF Compilation of the above with: $ g++ -c t.cpp results in: t.cpp: In member function `int C<T>::foo()': t.cpp:4: error: object missing in reference to `A::foo_' t.cpp:17: error: from this location Thanks, Liviu -- Summary: Acess failure in accessing data member of base class from derived template class Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: nicoara at roguewave dot com CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21008