我想在python中使用c ++复杂类型。我尝试了以下Swig接口文件:%module example%include <std_complex.i>%template(complexf) std::complex<float>;它返回此错误:example.i:3: Error: Template 'complex' undefined.如果我手动包含c ++头文件,%module example%include <std_complex.i>%include "/usr/include/c++/7/complex"%template(complexf) std::complex<float>;我会收到另一个错误:/usr/include/c++/7/complex:50: Error: Syntax error in input(1).所以我想知道如何在SWIG中正确使用c ++ complex?
1 回答
慕容森
TA贡献1853条经验 获得超18个赞
std_complex.i已经包含足够的定义以供使用std::complex<float>:
%module example
%include <std_complex.i>
%inline %{
using complexf = std::complex<float>;
complexf func(complexf a, complexf b)
{
return a + b;
}
%}
用法(与VS2015编译):
>>> import example
>>> example.func(1+2j,3-4j)
(4-2j)
添加回答
举报
0/150
提交
取消