Garbage collection (automatic recycling of unreferenced regions of memory) is optional in C++; that is, a garbage collector is not a compulsory part of an implementation. However, C++0x provides a definition of what a GC can do if one is used and an ABI (Application Binary Interface) to help control its actions.
Like I said, no current C++ compiler supports GC out of the box. Not even GCC. The memory model allows for GCC, and Bjarne refers to it as an ABI, but that's not what it's called in the actual standard specification. In fact, the term ABI is not even mentioned AT ALL.
The memory model, pointer semantics and aliasing rules are broad enough to allow for garbage collection, without actually mentioning the term "garbage collection."
See section 3.7.4.3:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf
In fact, the actual standard document only mentions the term "garbage collection" once in a ancillary note about how implementors can relax the rules for
malloc/
free for existing C interoperation, at the cost of not being able to implement "garbage collection." Search the PDF yourself if you don't believe me.
No C/C++ compiler will ever implement garbage collection, because quite frankly it over-complicates implementations and it's something no experienced C or C++ programmer will ever bother using.