我正在阅读未发表的硕士论文报告,我将提供反馈意见。
在报告中,他们在本机C ++和托管C ++下提到了GC。我以为C ++没有任何标准的GC,我错了还是对的? (他们没有提到Boehm-Demers-Weiser。)
在某些条件下使它工作有一些问题。它们在一个线程中创建对象,并从另一个线程中删除指针。
答案 0 :(得分:18)
托管C ++(及其后继者C ++ / CLI)当然使用.NET垃圾收集来托管资源(尽管本机资源不是垃圾收集的,必须像在本机C ++中那样手动管理)。
默认情况下,Native C ++没有这样的东西(最接近它的是智能指针,但这仍然是完全不同的东西),但这并不妨碍你编写自己的垃圾收集解决方案(或使用{{3 }})。
答案 1 :(得分:9)
1998/2004年的现有C ++标准未指定垃圾收集器。 即将推出的标准C ++ 0x确实指定了可选的垃圾收集器API,但实现是另一部分。 尽管如此,编译器供应商和第三方都有可用于C ++的垃圾收集器。
答案 2 :(得分:0)
C和C ++唯一的GC库是Hans-Boehm library,但据我所知,很难设置它。
答案 3 :(得分:0)
我对C ++下的GC有不同看法。
查看MCP(开源许可证GPLv3) - 使用C ++的GC不应该比GJC / Mono差。