什么垃圾收集器可用于C++?你在使用它们吗?结果如何?
所述升压库包括一些shared_ptr的东西,基本上作为参考计数垃圾收集器.如果你接受C++设计的RAII原则,那和auto_ptr将满足你对"垃圾收集器"的需求.
维基百科上列出了几个C++ GC .
但是,我不使用任何,RAII也是我的朋友.
Boehm垃圾收集器非常适合C,但在C++下使用很棘手.查看http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcinterface.html上的"C++界面"部分.
我的意见是,如果你需要垃圾收集,请选择内置垃圾的语言.
C++的最佳通用解决方案是共享指针(例如来自boost),同时处理循环依赖.你可以做两件事:1.设计没有圆形依赖关系的东西2.用"linch-pin"设计东西,打破圆圈以允许回收对象
要么处理真正糟糕,错综复杂,难以调试C++垃圾收集器的问题,要么处理在完成对象时释放对象的更简单的经典问题.