
I have read a few times that people sometimes wish that std::vector (or other containers) had a virtual destructor. I have recently wished for the same thing and I fairly quickly write a class called virtual_vector something like: template <class Type, class Allo = std::allocator<Type> > class virtual_vector { public: ~virtual_vector(); ... private: std::vector<Type, Alloc> m_vector; }; All the public methods of std::vector are present in virtual_vector and are just forwarded on m_vector. This allows one to write something like: struct person { string first_name; string last_name; }; class people : public virtual_vector<person> { public: //extra methods }; Is this useful? Has this been done already? Thanks in advance for any comments? Andy Tompkins