有沒有垃圾回收類的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++。 –
我喜歡將'智能指針'想象成'細粒度確定性垃圾收集器'。 –