SWIG C++ to Python: Warning(362): operator= ignored

SWIG C++ to Python: Warning(362): operator= ignored

本文关键字:operator ignored Warning C++ to Python SWIG      更新时间:2023-10-16

我正在向Python导出一个c++类,我注意到在编译过程中,SWIG发出以下警告:

Warning(362): operator= ignored

我不确定为什么操作符被重载,因为它在SWIG文档中说,SWIG能够处理操作符,如赋值操作符

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

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

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

python中没有赋值(除了基本类型),只有指针赋值。如果你想创建一个副本,你需要一个特殊的复制函数

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

另外,要注意某些操作符不能干净地映射到Python。例如,重载赋值操作符不映射到Python语义,将被忽略。