SWIG:零参数的可变参数模板

时间:2015-08-11 15:45:37

标签: java c++11 swig variadic-templates

来自SWIG文档:

  

但是现在,%template指令只接受一个参数   替换变量模板参数。

但是,是否可以使用带有零参数的variadic模板和SWIG进行解决方法,如

struct S {
  template <typename T, typename... Args>
  std::shared_ptr<T> fn(Args&&... args) const;
};

%template(Si) S::fn<int>; /* <-- Error: Template 'fn' undefined. */

1 个答案:

答案 0 :(得分:0)

正如评论中所建议我自己回答。我使用这种类型的包装器来生成带有任意数量参数的可变参数模板。

%extend S { 
std::shared_ptr<int> fn_int() const { return $self->fn<int>(); }
std::shared_ptr<double> fn_double(int i, int j) const { return $self->fn<double>(i, j); }
}