为了账号安全,请及时绑定邮箱和手机立即绑定

Swig:在Python中使用C ++ STL复合体

Swig:在Python中使用C ++ STL复合体

FFIVE 2021-03-29 08:09:18
我想在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)


查看完整回答
反对 回复 2021-04-13
  • 1 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信