SWIG C++ to Python: предупреждение(362): оператор= игнорируется
я экспортирую класс C++ в Python, и я заметил, что во время компиляции SWIG выдал следующее предупреждение:
Warning(362): operator= ignored
Я не уверен, почему оператор перегружается, потому что говорится в документация SWIG, этот SWIG способен обрабатывать операторы, такие как оператор присваивания
в моем классе нет ничего особенного, он объявлен следующим образом:
class Foo
{
public:
Foo();
Foo& operator= (const Foo&);
// etc ..
};
почему SWIG не может генерировать код оболочки для оператор присваивания, и как я могу это исправить?
2 ответов
в python нет назначения (кроме примитивных типов), только назначение указателей. Если вы хотите создать копию, вам нужна специальная функция копирования.
прочитайте последнюю строку вашего документация ссылка (раздел 31.3.11):
кроме того, имейте в виду, что некоторые операторы не сопоставляются с Python. Например, перегруженные операторы присваивания не сопоставляются с семантикой Python и игнорируются.