繁体   English   中英

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

[英]Swig: using c++ STL complex in Python

我想在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?

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM