2011-11-12 11 views
9

estoy exportación de una clase de C++ a Python y me di cuenta de que durante la compilación, el TRAGO emitió el siguiente aviso:TRAGO C++ para Python: Advertencia (362): el operador = ignorado

Warning(362): operator= ignored 

No estoy seguro de por qué el operador está sobrecargado, porque dice en el SWIG documentation, que TRAGO es capaz de operadores de manipulación tales como el operador de asignación

No hay nada especial en mi clase, se declara así:

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

¿Por qué SWIG no puede generar código contenedor para el operador de asignación y cómo puedo solucionarlo?

Respuesta

8

No hay asignación en python (excepto en tipos primitivos), solo asignación de punteros. Si desea crear una copia, necesita una función de copia especial.

6

Leer la última línea de su enlace documentation (sección 03/31/11):

Además, tenga en cuenta que algunos operadores no se asignan limpiamente a Python. Por ejemplo, los operadores de asignación sobrecargados no se asignan a la semántica de Python y serán ignorados.

Cuestiones relacionadas