删除Z3_ast对象时是否有可用的回调?

时间:2016-12-07 16:55:53

标签: z3

我正在使用z ++的C ++ API,所以我不需要担心引用计数或内存管理。

但是,我想使用std::map<Z3_ast, some_struct>行的std :: map存储针对z3 AST的信息。

删除特定的Z3_ast对象时,我想删除它的条目 从这张地图。

有没有办法设置一个回调函数,该函数将被调用 Z3_ast对象引用计数返回0并删除Z3_ast对象?

1 个答案:

答案 0 :(得分:1)

不,没有这样的回调,但可以想象你可以破解API提供一个。但是,只要至少有一个对Z3_ast的引用,引用计数就不应该下降到0(并且您的地图会保留一个引用,即地图中的引用)。

如果你没有在地图中存储Z3_ast时增加引用计数,那么引用计数范例就会被打破,这可能会导致非常困难的错误调试。