C++11 引入了垃圾收集器接口。据我所知,它提供了一种与 GC 通信的标准化方式(例如declare_no_pointers),并获取有关如何处理伪装指针的信息(例如get_pointer_safety)。
但是,C++11 中还没有标准化的方法来分配原始内存块,您不必手动释放它。即使不调用析构函数,也有一些用例会有所帮助。一个例子是实现高效的并发数据结构(如 Herb Sutter 所提到的),而无需处理复杂的清理协议。
到现在为止还挺好。我的问题(从普通开发人员的角度,而不是 GC 库开发人员的角度):
有没有新的 C++11 GC 接口对您有所帮助的真实示例?
至少在我看来,世界没有改变。如果你需要 GC,你还是得找一个非标准的库,比如Boehm GC,学习如何集成和使用它。新的标准化接口在这方面不会有太大帮助。它也不会解决可移植性问题。
(从长远来看,C++11 标准定义的通用接口有望获得回报。但是,我的问题只针对近期。)