LibGC is a small, fast, portable, multi-threaded garbage collection library for C++. It is highly customizable, as it can be multithreaded or single threaded, and the memory size to use for the collector may be changed at compile time. It is precise, as it only scans pointers that exist as members on the stack or as global variables. It's very easy to use, since it has only two classes, Object (the base class for garbage-collected objects) and Pointer (for garbage-collected pointers).