I would like to use some C++ std compliant memory management in form of a class derived from std::allocator, but able to allocate chunks of memory and releasing & freeing them in smaller parts. I only found boost::pool, but this is not std compliant in the above sense. Is there anything more useful around or do I have to code this myself?
(Note that the std::allocator is often useless for allocating many small objects, i.e. when using a std::list.)
EDIT to clarify.
Say, I want to use a std::list of many small objects, then implementations of std::allocator which allocate each object using ::new cause significant overhead in run time (but also memory I think). It is much more efficient to allocate big chunks of objects and hand them out one by one. For this, I need a std-compliant allocator (doesn't need to be derived from std::allocator, but must implement the same concept) that can be used with any std library container and provides the required memory management, ideally allowing me to tell it how many objects I am likely to individually allocate.
std::list(as mentioned in the original question) but avoid the allocation of many single objects.std::allocator" N.B. there is no reason allocators must (or should) derive fromstd::allocator, it's not an abstract base or an interface class. Allocators only have to meet the allocator requirements (17.6.3.5 [allocator.requirements]) not inherit from a particular base class.std::allocatoris often useless" ... do you mean your compiler's implementation? Or all implementations? They're not all the same.