SWIG C ++到Python:警告(362):operator = ignored

时间:2011-11-12 03:05:33

标签: c++ python swig

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

Warning(362): operator= ignored

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

我的班级没什么特别的,它是这样声明的:

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

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

2 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:6)

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

  

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