【发布时间】:2016-07-13 18:47:33
【问题描述】:
在我的程序中,我有一个垃圾收集器,我需要跟踪哪些对象保存在我的程序中的局部变量中,以避免在这些对象处于活动状态时对它们进行垃圾收集。
虽然我使用了链表来创建复合类型,但多年后我才意识到,C++ 语言必须保留该链表,以用于其自身的析构函数,尤其是与异常处理相关的析构函数。
所以我正在考虑通过使用 C++ 异常处理程序保存的信息来简化我的代码。有便携的方法吗?
如果没有,至少有关于 g++ 和 clang 的信息吗?
顺便说一下,当我使用多任务处理时,我应该能够为每个任务执行它(这些在垃圾收集器运行时正在等待)。
我真正需要的是遍历设置了析构函数的局部变量(并以非破坏性方式进行)。
【问题讨论】:
-
“在我的程序中我有一个垃圾收集器”- 停止。这已经是一个错误。 c++ 使用 RAII,这使得垃圾收集变得不必要。 Java 和 c# 有垃圾收集,这也是一个错误 - 但它们离纠正它的轨道太远了。