Python 如何在SWIG中处理函数模板?

Python 如何在SWIG中处理函数模板?,python,c++,swig,Python,C++,Swig,我在下面的代码行中使用SWIG得到了一个“输入中的语法错误”错误 template<typename T> void print_vec(std::vector<T> vec, int length = -1); 模板 无效打印向量(标准::向量向量,整数长度=-1); 在我的.i文件中,我包括以下行 %template(print_vec_int) print_vec<int>; %模板(打印向量)打印向量; 我做了什么? 你在吞C++代码,但是告诉

我在下面的代码行中使用SWIG得到了一个“输入中的语法错误”错误

template<typename T>
void print_vec(std::vector<T> vec, int length = -1);
模板
无效打印向量(标准::向量向量,整数长度=-1);
在我的.i文件中,我包括以下行

%template(print_vec_int) print_vec<int>;
%模板(打印向量)打印向量;

<>我做了什么?

你在吞C++代码,但是告诉它是C。你需要在代码中添加<代码> -C++ +>代码>

swig -o x_wrap.cc -c++ -python x.i
如果您使用的是SCON,则需要更新SWIGFLAGS环境变量:

env = Environment(SWIGFLAGS=['-c++', '-python'])

这可能是因为函数的
std::vector
参数。尝试添加
%模板(int_vector)std::vector
typedef
std::vector int_vector;`(见文件中的。)