Is there any interest in a library that provides containers with virtual destructors?

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

At 10:04 2005-10-25, Andy Tompkins wrote:
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?
unless I mis-read (or mis-understood...far more likely) a lot of books on how C++ works, I don't believe there is any reason for what _you've_ shown to need a virtual destructor. Until your derived class needs a non-trivial destructor it won't matter one way or another. Specifically, simply adding methods shouldn't create the need for a non-trivial destructor.
Has this been done already?
Thanks in advance for any comments? Andy Tompkins _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Victor A. Wagner Jr. http://rudbek.com The five most dangerous words in the English language: "There oughta be a law"
participants (2)
-
Andy Tompkins
-
Victor A. Wagner Jr.