我正在尝试使用SWIG创建一个python模块。但是,我收到了这个错误:
TypeError: in method 'Foo', argument 1 of type 'std::vector< std::vector< std::string,std::allocator< std::string > >,std::allocator< std::vector< std::string,std::allocator< std::string > > > > &'
我试过把&#34; std ::&#34;在矢量类型的前面,我尝试过使用命名空间std;&#34;,并且我尝试过包含&#34; std_vector.i。&#34;我没有解决这个问题的运气。
如何摆脱这个错误?
myModule.i
%module myModule
%{
#include "myModule.h"
/* Function declarations */
void foo(std::vector <std::vector <std::string> > &input, Model *myModel,std::vector <std::vector <std::vector <double> > > &output)
%}
using namespace std;
%include "std_string.i"
%include "std_vector.i"
// Instantiate templates used
%template(VecInt) vector<int>;
%template(VecVecInt) std::vector<std::vector<int> >;
%template(VecDouble) std::vector<double>;
%template(VecVecDouble) std::vector<std::vector<double> >;
%template(VecString) std::vector<std::string>;
%template(VecVecString) std::vector<std::vector<std::string> >;
%template(VecConstChar) std::vector<const char*>;
#include "myModule.h"
void foo(std::vector <std::vector <std::string> > &input, Model *myModel,std::vector <std::vector <std::vector <double> > > &output)
Foo功能:
void foo(vector <vector <string> > &input, Model *myModel,vector <vector <vector <double> > > &output)