z3中的常量 - c ++ api中的分段错误

时间:2015-04-12 17:56:32

标签: c++ z3

以下针对z3的c ++ api代码会导致分段错误:11 (在Mac OS 10.10.2上运行的z3版本4.4.0)

#include "../z3/include/z3++.h"

int main() {
  z3::context c;

  z3::sort A = z3::sort(c);
  z3::expr x = c.constant("x", A);
}

我做错了吗?

1 个答案:

答案 0 :(得分:0)

表达式z3::sort(c)将A初始化为与上下文关联的排序对象,但不是实际(较低级别)排序对象。 (另请参阅C++ example了解如何构建常用的排序。)

我相信目前没有方便的C ++风格的方式来构建未解释的排序。为此,我们需要转到C-API函数Z3_mk_uninterpreted_sort(然后可以使用z3::sort(c, ...)进行封装。)