如何在SWIG中处理函数模板

How do I handle function templates in SWIG?

本文关键字:处理 函数模板 SWIG      更新时间:2023-10-16

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

template<typename T>
void print_vec(std::vector<T> vec, int length = -1);

在我的.i文件中,我包括以下行

%template(print_vec_int) print_vec<int>;

我做错了什么?

您正在编写C++代码,但告诉swig它是C。您需要将-c++添加到swig命令行。

swig -o x_wrap.cc -c++ -python x.i

如果您使用SCons,则需要更新SWIGFLAGS环境变量:

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