What free and commercial garbage collection libraries are available for C++, and what are the pros and cons of each?
I am interested in hard-won lessons from actual use in the field, not marketing or promotional blurb.
There is no need to elaborate on the usual trade offs associated with automatic garbage collection, but please do mention the algorithms used (reference counting, mark and sweep, incremental, etc.) and briefly summarise the consequences.
I have used the Boehm collector in the past with good success. It's open source and can be used in commercial software.
It's a conservative collector, and has a long history of development by one of the foremost researchers in garbage collection technology.