【问题标题】:SWIG C++ to Python: Warning(362): operator= ignoredSWIG C++ 到 Python:警告(362):运算符 = 被忽略
【发布时间】:2011-12-27 11:37:32
【问题描述】:

我正在将一个 C++ 类导出到 Python,我注意到在编译期间,SWIG 发出了以下警告:

Warning(362): operator= ignored

我不确定为什么运算符会被重载,因为它在 SWIG documentation 中说 SWIG 能够处理诸如赋值运算符之类的运算符

我的课没有什么特别的,它是这样声明的:

class Foo
{
public:
    Foo();
    Foo& operator= (const Foo&); 
    // etc ..
};

为什么 SWIG 无法为赋值运算符生成包装器代码,我该如何解决这个问题?

【问题讨论】:

    标签: c++ python swig


    【解决方案1】:

    阅读documentation 链接的最后一行(第 31.3.11 节):

    另外,请注意某些运算符不能完全映射到 Python。例如,重载的赋值运算符不映射到 Python 语义,将被忽略。

    【讨论】:

      【解决方案2】:

      python 中没有赋值(原始类型除外),只有指针赋值。如果要创建副本,则需要特殊的复制功能。

      【讨论】:

        猜你喜欢
        • 2015-03-10
        • 1970-01-01
        • 2016-07-10
        • 2016-10-03
        • 1970-01-01
        • 1970-01-01
        • 2017-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多