有没有垃圾回收类的C++。我的想法是这样的:C++有垃圾回收类吗
class A : public GarbageCollected<A>
{
void kill()
{
GarbageCollected<A>.set_cleanup_flag();
}
...
private:
GarbageCollectedPointer<B> b_pointer; // Somehow we follow
GarbageCollectedPointer<B> b_pointer2; // these pointers.
};
class B
{
...
};
class GarbageContainer
{
...
};
int main()
{
GarbageContainer gc;
gc.add(new A());
...
}
的想法是,GarbageContainer
会做标记和清理上的物体或其他一些垃圾收集方法。这将节省必须做引用计数和使用weak_ptrs和垃圾收集可以只用于它觉得有必要的对象。
是否有任何库实现这样的东西?
前甚至去那里,停下来想一想,为什么你需要它。每次有人想在C++中使用GC,都意味着他们的设计是错误的。 –
@Gene:你应该告诉Hans Boehm和Bjarne Stroustrup。他们都热衷于将标记/扫描样式GC转换为C++。 –
我喜欢将'智能指针'想象成'细粒度确定性垃圾收集器'。 –