Phi*_*ßen 17 c++ garbage-collection c++11
C++ 11引入了垃圾收集器的接口.从我看来,它提供了一种与GC通信的标准化方法(例如declare_no_pointers),并获得有关如何处理伪装指针的信息(例如,get_pointer_safety).
但是,在C++ 11中还没有标准化的方法来分配原始内存块,您无需手动释放.即使没有调用析构函数,也有一些用例会有所帮助.一个例子是实现有效的并发数据结构(如Herb Sutter所述),而不必处理复杂的清理协议.
到现在为止还挺好.我的问题(从普通开发者的角度来看,而不是GC库开发人员):
是否有一个真实世界的例子,新的C++ 11 GC接口帮助了你?
至少从我的角度来看,世界并没有改变.如果您需要GC,您仍然需要找到非标准库,例如Boehm GC,并学习如何集成和使用它.新的标准化界面在这方面无济于事.它也不会解决可移植性问题.
(从长远来看,C++ 11标准定义的通用接口有望得到回报.但是,我的问题仅针对不久的将来.)
sas*_*hka 10
没有,没有目前 C++ 11 GC接口的实际应用,因为没有编译器完全支持在此期间该API.此外,C++ 11标准将此API声明为可选,并且在主要编译器中没有看到实现它的动作(但是正如Jesse Good指出MSVC已经支持它).
你也应该看看这篇文章,它有相关的信息:为什么RAII可用时垃圾收集?