【问题标题】:Swig: using c++ STL complex in PythonSwig:在 Python 中使用 c++ STL 复杂
【发布时间】:2018-06-22 06:34:26
【问题描述】:

我想在 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).

所以我想知道如何正确使用 c++ complex 和 SWIG?

【问题讨论】:

    标签: python c++ swig


    【解决方案1】:

    std_complex.i 已经包含足够的定义来使用std::complex&lt;float&gt;

    %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)
    

    【讨论】:

    • 谢谢!我很感激。
    猜你喜欢
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多