#ifndef PTRLIST_H #define PTRLIST_H #include template class PtrList; template <> class PtrList { public: void append( void *elem ) { impl_.push_back( elem ); } // . . . private: std::list impl_; }; template class PtrList : private PtrList { public: PtrList() {} ~PtrList() {} void append( T *newElem ); // . . . }; template inline void PtrList::append( T *newElem ) { PtrList::append( newElem ); } #endif