Ich schreibe eine C++ Bibliothek und ich würde gerne in der Lage sein, es in Python zu nennen. Ich würde gerne Swig verwenden Ich bin erfolgreich in der Lage, das Python-Modul zu erstellen und zu kompilieren, aber ich habe ein wenig zu kämpfen, um zu verstehen, wie Schnittstelle Python und C++.Swig - C++ Vektor einer Struktur und wie man sie verbindet
struct twod {
double x; ///< x value
double y; ///< y value
};
double distance_calculation(std::vector <twod> A, std::vector <twod> B);
Dies ist ein Snap meiner Header-Datei. Nach meiner .i-Datei:
%module hausdorff
%{
#include "Hausdorff.h"
using namespace hausdorff;
%}
%include "std_vector.i"
%include "Hausdorff.h"
namespace std {
%template(vector2d) vector<twod>;
}
In Python Ich bin in der Lage, das Objekt zu erstellen:
In [13]: vector = hausdorff.vector2d
In [14]: vector = ([1,2], [3,4])
In [15]: result = hausdorff.distance_calculation(vector, vector)
Und ich als Fehler:
TypeError: in method 'distance_calculation', argument 1 of type 'std::vector< hausdorff::twod,std::allocator<hausdorff::twod> >'
Wie finde ich das richtige Objekt übergeben zur Funktion?