Hi This cut down example does not compile with gcc 3.4.x / 4.0.x or 4.1.0.
test.cpp: In constructor 'Three<T>::Three()': test.cpp:20: error: 'm_Public' was not declared in this scope It does compile with VS2005 / VS6 class One { public: One(); ~One(); public: int m_Public; }; template <class T> class Two : public One { public: Two() {m_Public = 0;} }; template <class T> class Three : public Two<T> { public: Three() {m_Public = 0;} }; this fixes it. template <class T> class Three : public Two<T> { public: Three() {Two<T>::m_Public = 0;} }; any ideas ? regards --- Matthew J Fletcher Embedded Software Serck Controls Ltd --- ********************************************************************** Serck Controls Ltd, Rowley Drive, Coventry, CV3 4FH, UK Tel: +44 (0) 24 7630 5050 Fax: +44 (0) 24 7630 2437 Web: www.serck-controls.com Admin: [EMAIL PROTECTED] A subsidiary of Serck Controls Pty. Ltd. Reg. in England No. 4353634 ********************************************************************** This email and files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the above. Any views or opinions presented are those of the author and do not necessarily represent those of Serck Controls Ltd. This message has been checked by MessageLabs ******************************************************************