Как создать шаблонную функцию в SWIG для c ++?

0

У меня есть функция шаблона со следующей сигнатурой в файле c++

template <class T> std::vector<T> function(T);  

Я хочу сделать файл интерфейса для переноса main.cpp в файл python с помощью Swig. Как включить Tfunction в Swig, для типов int float и double?

//main.i
%module main
%include "carrays.i"
%array_class(double, doubleArray);

%{
   extern template <class T> std::vector<T> Tfunction(T);
%}

extern template <class T> std::vector<T> Tfunction(T);
Теги:
python-2.7
swig

1 ответ

2

Поскольку Python не знает шаблонов, вам нужно создать тип для каждого параметра. Существует удобная директива шаблона%, которую вы бы использовали:

%template(TfunctionInt) Tfunction<int>;

Это подробно объясняется в разделе 6.18 документов SWIG.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню