SWIG: diferencia entre% importación y% incluido

losDocumentos SWIG Explique estas dos directivas de la siguiente manera:

%include: "Para incluir otro archivo en una interfaz SWIG, use el%include directiva ... a diferencia de#include, %include incluye cada archivo una vez (y no volverá a cargar el archivo en posteriores%include declaraciones). Por lo tanto, no es necesario usar include-guards en las interfaces SWIG ".

%import: "SWIG proporciona otra directiva de inclusión de archivos con el%import directiva ... el propósito de%import es recopilar cierta información de otro archivo de interfaz SWIG o un archivo de encabezado sin generar realmente ningún código de envoltorio. Dicha información generalmente incluye declaraciones de tipo (por ejemplo, typedef), así como clases de C ++ que pueden usarse como clases de base para declaraciones de clase en la interfaz. "

Mi pregunta es ¿cuáles son las diferencias entre estas dos directivas y cuáles son las ventajas y desventajas de usar cada una?

PD Sólo por alguna información de fondo. Tengo una simple extensión de C ++ - python que se construye y funciona cuando uso cualquiera de las directivas anteriores. Uno, sin embargo (%import) da menos advertencias cuando llamoswig -c++ -python my_file.i.

Respuestas a la pregunta(1)

Su respuesta a la pregunta