Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有哪些垃圾收集器可用于C++;? 列出了几个C++ GC。 不过,我不使用任何,RAII也是我的朋友。 < P>垃圾机对C来说非常好,但是在C++下使用很棘手。请查看上的“C++接口”部分_C++_Garbage Collection - Fatal编程技术网

有哪些垃圾收集器可用于C++;? 列出了几个C++ GC。 不过,我不使用任何,RAII也是我的朋友。 < P>垃圾机对C来说非常好,但是在C++下使用很棘手。请查看上的“C++接口”部分

有哪些垃圾收集器可用于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)处理循环依赖关系。

我个人听说的唯一一个是我确信其他的存在,但我没有处理它们(或寻找它们)。

该库包含一些共享的东西,基本上充当引用计数垃圾收集器。如果你接受C++设计的原理,那将自动满足你对“垃圾收集器”的需求。

< P>列出了几个C++ GC。

不过,我不使用任何,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就是这么问的)。