有哪些垃圾收集器可用于C++;? 列出了几个C++ GC。 不过,我不使用任何,RAII也是我的朋友。 < P>垃圾机对C来说非常好,但是在C++下使用很棘手。请查看上的“C++接口”部分
我个人听说的唯一一个是我确信其他的存在,但我没有处理它们(或寻找它们)。该库包含一些共享的东西,基本上充当引用计数垃圾收集器。如果你接受C++设计的原理,那将自动满足你对“垃圾收集器”的需求。 < P>列出了几个C++ GC。有哪些垃圾收集器可用于C++;? 列出了几个C++ GC。 不过,我不使用任何,RAII也是我的朋友。 < P>垃圾机对C来说非常好,但是在C++下使用很棘手。请查看上的“C++接口”部分,c++,garbage-collection,C++,Garbage Collection,我个人听说的唯一一个是我确信其他的存在,但我没有处理它们(或寻找它们)。该库包含一些共享的东西,基本上充当引用计数垃圾收集器。如果你接受C++设计的原理,那将自动满足你对“垃圾收集器”的需求。 < P>列出了几个C++ GC。 不过,我不使用任何,RAII也是我的朋友。 < P>垃圾机对C来说非常好,但是在C++下使用很棘手。请查看上的“C++接口”部分 我的意见是,如果您需要垃圾收集,请选择内置垃圾收集功能的语言 < > C++的最佳通用解决方案是共享指针(例如从Boost)处理循环依赖关系。
不过,我不使用任何,RAII也是我的朋友。
< P>垃圾机对C来说非常好,但是在C++下使用很棘手。请查看上的“C++接口”部分 我的意见是,如果您需要垃圾收集,请选择内置垃圾收集功能的语言 < > C++的最佳通用解决方案是共享指针(例如从Boost)处理循环依赖关系。您可以做两件事: 1.设计没有循环依赖的东西 2.用一个“锁销”来设计这个东西,这个锁销可以打破圆圈,从而可以回收物体你要么处理垃圾收集的真正的坏的、复杂的、难以调试的问题,要么处理C++中处理对象时更简单的经典问题。
< P> > .NET框架中总是有AHEM:-C++。那里的垃圾收集相当不错p 虽然,老实说,他们把所有的语法糖放在那里,你几乎可以认为它是一种完全新的语言,恰好与C/C++相结合。如果你没有和C++作为语言结婚,你也可以查看,它编译成C++之类的本地代码(和C++ + CLI不同),但也有垃圾收集。p> 您可以找到几种实现方式。我从来没有尝试过其中任何一个,一般来说,我发现一个不确定的GC造成了弊大于利。
在一般情况下,不需要垃圾收集器,因为C++智能指针是优越的,并给出确定性破坏。如果你有一个垃圾收集的特殊“用例”,那么也许我们可以更深思熟虑地回答这个问题。@Martin-你的评论看起来像是一个答案。你应该发布它,这样人们就可以对它进行正确的投票。Boehm已经为GC的ISC C++委员会做了介绍(2004 IIc,当聪明的指针是众所周知的),所以看来马丁斯的观点不应该被描述为一个事实。C++中有GC的位置。但在一般情况下,最好使用智能指针。因此,GC的需要归结为特殊情况。因此,要回答“结果是什么”部分,您需要理解需要GC的原因。智能指针不定义任何特定的语义(它们可能是非确定性的,或者永远不会破坏任何东西)。诸如shared_ptr之类的特定实现确实定义了语义,但它们不是通用的,因为它们不处理循环引用。如果您想能够对循环引用进行建模,就不能这样做。@DanielEarwicker:实际上Boost也包含弱_ptr,为了解决这个问题。@JosephGarvin True-但您必须选择正确的一个。有了GC,你就没有了(OP就是这么问的)。