我使用SWIG包装了一个C ++库API,效果很好,但我被“bool&”困扰了参数。
原始API如下所示:
void foo(bool& bar);
当我从Python调用它时,_wrap.cxx退出
的包装过程 int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_bool, 0);
_v = SWIG_CheckState(res);
if (_v) {
换句话说,swig无法将我传入的内容转换为bool指针。
我试图用Python调用它,就像这样:
obj = LibObject()
x = 0
obj.foo(x)
是否有针对此的简单类型图解决方案?
答案 0 :(得分:1)
这应该有效:
%include <typemaps.i>
%apply bool & INOUT { bool & bar };
每当SWIG看到bool & bar
参数时,它应将其视为输入/输出参数。如果您只需要它作为输出参数,请使用OUTPUT
。