Java no tiene un equivalente de operator()
o operator=
en el mismo sentido que C++, por lo que no hay forma de que SWIG lo ajuste directamente. Debido a que pueden ser importantes, se muestra una advertencia que explica que no están siendo envueltos. (Perder operator=
puede ser particularmente malo a veces).
Este código exhibe tal advertencia cuando se ejecuta swig -Wall -c++ -java
:
%module Sample
struct test {
bool operator()();
};
Pero se puede silenciar la advertencia y decirle TRAGO a exponer al operador directamente como una función miembro regular diciendo algo como:
%module Sample
%rename(something_else) operator();
struct test {
bool operator()();
};
Lo que hace que se agregue una función llamada something_else
en lugar de operator()
en el contenedor generado.
O bien, puede afirmarse que el TRAGO que ignorar los está bien usando:
%ignore operator()
(También se puede aplicar cualquiera de dichas Directivas menos en términos generales, al calificar los operadores con los nombres de las clases).
Eso no es una advertencia de G ++, es una advertencia de SWIG. – Flexo
Iba a decir que se parece más a SWIG. No es un problema a menos que desee usar esos operadores de Java. –
Gracias por la información, he editado mi pregunta. – arsalank2