SWIG C ++からPythonへ:警告(362):operator = ignored

私はC ++クラスをPythonにエクスポートしています。コンパイル時にSWIGは次の警告を出しました。

Warning(362): operator= ignored

SWIGのドキュメントに記載されているので、なぜオペレータに過負荷がかかるのかわかりません。/a>のように、SWIGは代入演算子

私のクラスについて特別なことは何もありません。それは次のように宣言されています:

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

SWIGが代入演算子のラッパーコードを生成できないのはなぜですか、どうすればこの問題を解決できますか?

9
追加された 編集された
ビュー: 1

2 答え

Pythonには(プリミティブ型以外の)代入はなく、ポインタの代入だけがあります。コピーを作成するには、特別なコピー機能が必要です。

8
追加された

ドキュメントリンク(セクション31.3.11)の最後の行を読んでください:

また、特定の演算子はPythonにきれいにマップされないことに注意してください。たとえば、オーバーロードされた代入演算子はPythonのセマンティクスにはマッピングされず、無視されます。

6
追加された