当 Z3_ast 对象被删除时是否有回调可用?
Is there a call back available for when a Z3_ast object is deleted?
我正在为 z3 使用 C++ API,所以我不需要担心引用计数或内存管理。
但是,我想根据 std::map<Z3_ast, some_struct>
.
使用 std::map 存储针对 z3 AST 的信息
当一个特定的 Z3_ast 对象被删除时,我想删除它的条目
来自这张地图。
有什么方法可以设置一个回调函数,当
Z3_ast 对象引用计数 returns 为 0 并且 Z3_ast 对象被删除?
不,没有这样的回调,但可以想象你可以破解 API 来提供一个。但是,只要至少有一个对 Z3_ast
的引用,引用计数就永远不会下降到 0(并且您的地图包含一个引用,即地图中的那个)。
如果在映射中存储 Z3_ast
时不增加引用计数,引用计数范式就会被打破,这可能会导致非常严重的错误调试。
我正在为 z3 使用 C++ API,所以我不需要担心引用计数或内存管理。
但是,我想根据 std::map<Z3_ast, some_struct>
.
当一个特定的 Z3_ast 对象被删除时,我想删除它的条目 来自这张地图。
有什么方法可以设置一个回调函数,当 Z3_ast 对象引用计数 returns 为 0 并且 Z3_ast 对象被删除?
不,没有这样的回调,但可以想象你可以破解 API 来提供一个。但是,只要至少有一个对 Z3_ast
的引用,引用计数就永远不会下降到 0(并且您的地图包含一个引用,即地图中的那个)。
如果在映射中存储 Z3_ast
时不增加引用计数,引用计数范式就会被打破,这可能会导致非常严重的错误调试。