Boost logo

Boost :

From: Boris (boriss_at_[hidden])
Date: 2006-06-17 12:12:39

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
 static boost::pool<my_allocator> mem_pool;

 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 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[]


Boost list run by bdawes at, gregod at, cpdaniel at, john at