哪些垃圾收集器可用于C ++?你在使用它们吗?结果如何?
答案 0 :(得分:6)
答案 1 :(得分:5)
列出了几个C ++ GC on wikipedia。
但是,我不使用任何,RAII也是我的朋友。
答案 2 :(得分:5)
Boehm垃圾收集器非常适合C,但在C ++下使用很棘手。查看http://www.hpl.hp.com/personal/Hans_Boehm/gc/gcinterface.html上的“C ++界面”部分。
我的意见是,如果你需要垃圾收集,请选择内置垃圾的语言。
C ++的最佳通用解决方案是共享指针(例如来自boost),同时处理循环依赖。你可以做两件事: 1.设计没有循环依赖的东西 2.设计带有“linch-pin”的东西,打破圆圈以允许回收物体
要么处理真正糟糕,错综复杂,难以调试C ++垃圾收集器的问题,要么处理在完成对象时释放对象的更简单的经典问题。
答案 3 :(得分:4)
我个人听过的唯一一个是Boehm garbage collector我确信其他人存在,但我没有处理过它们(或者也没有找到它们)。
答案 4 :(得分:2)
总是,ahem:C++/CLI - .NET Framework的C ++。那里很好的垃圾收集。 :P
虽然,老实说,他们放在那里的所有语法糖,你几乎可以认为它是一种恰好与C / C ++一起使用的全新语言。
如果您没有将C ++作为一种语言结合,那么您也可以查看D,它编译为本机代码,如C ++(与C ++ / CLI不同),但也有垃圾回收。
答案 5 :(得分:2)
您可以找到多个实现here。我从未尝试过任何一种,一般来说,我发现一种非确定性的GC会造成更多的伤害。