我目前正在将 Boehm 垃圾收集器用于 C++ 中的大型应用程序。虽然它有效,但在我看来,GC 对我的目的来说太过分了(我不喜欢将此作为依赖项,我必须不断地考虑并在我所做的一切中考虑 GC,以免踩到它的脚趾)。我想找到一个更适合我需求的更好的解决方案,而不是碰巧涵盖它的一揽子解决方案。
在我的情况下,我有一个想要“收集”的特定类(以及从该类继承的所有内容)。我不需要一般的垃圾收集,在除了这个特定的类之外的所有情况下,我都可以轻松地管理我自己的内存。
在我开始使用 GC 之前,我使用了引用计数,但是引用循环和频繁的更新使得这不是一个理想的解决方案。
我有更好的方法来跟踪这门课吗?一种不涉及额外的库依赖项,如 boost。
编辑: 最好简要说明我的对象的潜在寿命。
一个函数创建我的类的一个新实例,并且可能(或可能不)使用它。无论如何,它将这个新实例作为返回值传回给调用者。调用者也可能(或可能不)使用它,并且再次将它传递回堆栈,最终到达顶层函数,该函数只是让指针逐渐消失。
我不能只删除顶层的指针,因为“可能使用”的一部分涉及将指针传递给其他函数,这些函数可能(或可能不)存储指针以供将来在其他地方使用。
我希望这能更好地说明我要解决的问题。我目前使用 Boehm 垃圾收集器解决它,但如果可能的话,我想要更简单、不涉及依赖的解决方案。