Boost logo

Boost :

From: shiwei xu (xushiweizh_at_[hidden])
Date: 2008-05-16 05:33:47

What is new?

1. Lock-free free list (workarounds ABA problem).
2. Provide both region allocators (boost::auto_alloc, boost::scoped_alloc)
and general-purpose allocators (boost::gc_alloc).
3. Notes: To fit for C++ exception semantics (See the example named
"testExceptionSemantics"), I updated the specification of GC Allocator.


1. Allocating memory is very fast.
2. No memory leaks. No need to delete objects manually. Or forgetting to
delete objects is allowed.


* Steven Watanabe
* Scott McMurray
* Tim
* Diduck, Lance

To gain the source code, you can:

1. Svn checkout
2. Svn checkout

What is boost-memory?
It provides allocators named "GC Allocator". Note "GC Allocator" isn't GC.
GC Allocator is different from STL Allocator. The following is minimum
specification for GC Allocator:
typedef void (*DestructorType)(void* data);
concept GCAllocator
    // Allocate memory without given a cleanup function
    void* allocate(size_t cb);
    // Allocate unmanaged memory with a cleanup function
    void* unmanaged_alloc(size_t cb, DestructorType fn);
    // Commit unmanaged memory to be managed.
    void* manage(void* p, destructor_t fn);
    // Deprecated: allocate memory with a cleanup function
    void* allocate(size_t cb, DestructorType fn) {
       return manage(unmanaged_alloc(cb, fn), fn);
    // Cleanup and deallocate all allocated memory by this GC Allocator
    void clear();
    // Swap two GCAllocator instances
    void swap(GCAllocator& o);
For more information about GC Allocator, refer to

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