Hello. Why were base class "typedefs" hidden by template<> and explicit usage of them does not work too?
Try open only one of the lines in the example below //using Tparent::Tptr; //typedef Tparent::Tptr Tptr; Consider example: template< class A, class B> class Z; template< class A, class B> class Ext1; template< class A, class B> class Base { public: typedef Z<A,B> Tptr; }; template< class A > class Derived: public Base<A, Ext1<int,int> > { public: typedef Base<A, Ext1<int,int> > Tparent; using Tparent::Tptr; typedef Tparent::Tptr Tptr; inline void test(const Tptr obj)throw(); }; class Base2 { public: typedef Z<int,int> Tptr; }; class Derived2: public Base2 { public: typedef Base2 Tparent; using Tparent::Tptr; //typedef Tparent::Tptr Tptr; inline void test(const Tptr obj)throw(); }; /* 5.cpp:18: error: ISO C++ forbids declaration of 'Tptr' with no type 5.cpp:18: error: cannot declare member 'Base<A, Ext1<int, int> >::Tptr' within 'Derived<A>' 5.cpp:18: error: expected ';' before 'Tptr' 5.cpp:20: error: expected ',' or '...' before 'obj' 5.cpp:20: error: ISO C++ forbids declaration of 'Tptr' with no type */ _______________________________________________ help-gplusplus mailing list help-gplusplus@gnu.org http://lists.gnu.org/mailman/listinfo/help-gplusplus