
Hello all, I add a new class: TlsBlockPool. And now you can define a ScopeAlloc instance without given parameters: ScopeAlloc alloc; It is same as: ScopeAlloc alloc(TlsBlockPool::instance()); --- class TlsBlockPool { public: TlsBlockPool() { init(); } ~TlsBlockPool() { term(); } static void init(); static void term(); static BlockPool& instance(); }; Note: TlsBlockPool::init() can be called more than once. each call to TlsBlockPool::init() must be balanced by a corresponding call to TlsBlockPool::term(). On Tue, Apr 22, 2008 at 8:58 PM, shiwei xu <xushiweizh@gmail.com> wrote:
Most of the C++ programmers do not benefit from "Garbage Collection" technique (GC). They are sick of deleting objects but have to do this. There are some C/C++ memory GC implementations, but they are complex and are not widely used.
I am going to introduce a new memory management technique named "GC Allocator". "GC Allocator" isn't an implementation, but a concept. Now, we have two "GC Allocator" implementations, named "AutoFreeAlloc" and "ScopeAlloc".
This article consists of three parts:
1. What is GC Allocator? 2. GC Allocator implementations: ScopeAlloc and AutoFreeAlloc 3. Applications based on GC Allocator For more information, see http://www.codeproject.com/KB/cpp/gc-allocator.aspx
To obtain a copy of this paper in pdf format click here<http://xushiwei.com/local--files/gc-allocator/GCAllocator.pdf>(or from google code <http://code.google.com/p/stdext/downloads/list>).