--- Peter Dimov <[EMAIL PROTECTED]> wrote: > E. Gladyshev wrote: > > > > I guess my question is that, is boost redefining the > > memory management concepts that have been established by STL? > > Yes and no. The STL uses allocators for containers. Most non-containers do > not have an allocator parameter, although many standard classes do allocate > memory.
I agree. It means the STL is not consistent either. So what are the boost recomendations for using STL containers and boost in the same class? I am using STL and trying to use boost in my daily development. What can I do to implement consistent classes in terms of memory management. For example, if I need to implement a class A that has a container and pointer to a data type. I have two options: template< typename T > struct A { shared_ptr<T> _data; std::list<T> _list; }; template< typename T, template A = std::allocator<T> > struct A { shared_ptr<T> _data; std::list<T, A> _list; A : _data( new T() ) {...} }; The problem with the first defenition is that I am limiting the built-in STL functionality in terms of memory management. The problem with the second definition is that if I expose the allocator template parameter, the user of my class will expect that all memory allocations of type T are going to be using her allocator but boost::shared_ptr doesn't support it. Could you please advise me? Eugene __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost