[pool] Problem with ordered_malloc() and ordered_free()

I have a problem with ordered_malloc() and ordered_free() which might be from misunderstanding the documentation. I use these two functions to overload operator new[] and operator delete[]: template <class T> class mem_manager { protected: static boost::pool<my_allocator> mem_pool; public: void *operator new[](std::size_t size) { return mem_pool.ordered_malloc(size / sizeof(T)); } void operator delete[](void *p) { mem_pool.ordered_free(p); } }; I overloaded new and delete with malloc() and free() which works fine. However from what I understand I can't use them for new[] and delete[] - that's why I tried ordered_malloc() and ordered_free(). I haven't really investigated the problem yet because I'm not sure if I implemented these two operators correctly or if I understood ordered_malloc() and ordered_free() wrong. The documentation at http://www.boost.org/libs/pool/doc/interfaces/pool.html says something about merging free lists and preserving order with ordered_malloc(). Is this related to allocating an array? Or how shall I implement new[] and delete[] correctly? Boris
participants (1)
-
Boris