我正在阅读一篇未发表的硕士毕业论文报告,我将就此提供反馈意见。C++有垃圾收集器吗?
在报告中,他们提到GC在本机C++下,并管理C++。我认为C++没有任何标准GC,我错了还是对吗? (他们没有提到Boehm-Demers-Weiser。)
他们在某些条件下使其工作有些问题。他们在一个线程中创建对象,并从另一个线程删除指针。
我正在阅读一篇未发表的硕士毕业论文报告,我将就此提供反馈意见。C++有垃圾收集器吗?
在报告中,他们提到GC在本机C++下,并管理C++。我认为C++没有任何标准GC,我错了还是对吗? (他们没有提到Boehm-Demers-Weiser。)
他们在某些条件下使其工作有些问题。他们在一个线程中创建对象,并从另一个线程删除指针。
托管C++(及其后继C++/CLI)当然使用.NET垃圾回收来管理资源(虽然本机资源不是垃圾回收,必须像本地C++一样手动管理)。默认情况下,原生C++没有这种东西(最接近这个的是智能指针,但这仍然是完全不同的东西),但这并不妨碍您编写自己的垃圾回收解决方案(或使用third party solution) 。
C++ 0x明确允许实现包含垃圾回收器。 – 2011-02-23 09:50:04
1998/2004的现有C++标准没有指定垃圾收集器。 即将到来的标准C++ 0x确实指定了一个可选的垃圾收集器API,但实现是另一部分。如上所述,编译器供应商和第三方都有可用于C++的垃圾收集器。
确实很有趣 – 2011-02-23 10:06:11
C和C++唯一的GC库是Hans-Boehm library,但据我所知很难设置它。
我对C++下的GC有不同的看法。
看看MCP(开源许可证GPLv3) - 使用C++的GC应该不会比GJC/Mono差。
[TR1](http://en.wikipedia.org/wiki/C%2B%2B_Technical_Report_1)是否包括在内? – sarnold 2011-02-23 09:49:35
@kotlinski请不要打扰你不知道的技术。我从来没有使用过Managed C++,但它的后继者 - C++/CLI是.NET生态系统的重要组成部分。 – 2011-02-23 10:43:46
对不起,我不知道它是生态系统的一部分。 – 2011-02-23 10:46:25