--- Daryle Walker <[EMAIL PROTECTED]> wrote: > On Monday, August 25, 2003, at 2:57 PM, Peter Dimov wrote: > has-bugs/is-slow/plain-old-sucks? There can be an orthogonal need for > a different allocator class, which no improvement on the default one > can fix. > > In this case, the Java user is 100% screwed since they can't change the > memory manager at all. Or at least, can't change the manager without > changing it everywhere. (Allocator policies allow mix-and-match.)
I am glad that boost is not a Java library. :) Don't get me wrong, boost is an amazing library. I am learning from it every minute I look at it, great job guys thank you. However I was a bit shocked when I realized how ignorant boost is about memory policies. For instance boost::signals use std::vector<>, but it doesn't care to do anything about the allocator parameter. Some libraries would mix global new/delete calls with user defined memory policies and all that under the covers and the list goes on and on. I don't like the STL allocators too much but I'd like to see a modern C++ library that has consistent and clear memory policies. Instead of having an allocator template parameter for each class, perhaps we could design a global memory management class that can be scaled horizontally on the data type basis. It will require some way to associate a user defined allocator with data type. Then we would need to define STL-style allocators that will call the boost memory manager. The boost memory policy could be along the lines: 1. All boost classes have to use boost::allocator<> with STL allocators internally. std::vector<int, boost::allocator<int> >; 2. If a boost class needs to create an object it must call boost::mm. int *x = boost::getmm()->create<int>(1); ... boost::getmm()->destroy(x,1); 3. The user can customize memory policies for her class by calling regmm boost::getmm()->regmm( MyAllocator<MyClass>() ); IMHO, in terms of memory management, this simple policy will make boost to look more like a C++ library not Java. It doesn't provide the flexibility of STL allocators but it does give the user some control over the memory. 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