使用函数参数的模板参数编写函数

时间:2014-05-26 16:05:09

标签: c++ templates

我想编写一个带Eigen Spline的函数,这是一个模板化的类

Spline<typename _Scalar, int _Dim, int _Degree>

是否有可能(以及我如何)编写一个函数,它不是Spline类的成员函数,它接受泛型Spline并使用_Scalar,_Dim和_Degree变量?它们是公开的enumtypedef

2 个答案:

答案 0 :(得分:2)

是的,写一个功能模板:

template <typename T, int DIM, int DEG>
void foo(const Spline<T, DIM, DEG>& spline);

请注意,我已删除所有带有前导下划线的名称。这些是保留名称,使用它们是未定义的行为。看来艾根在这方面很顽皮。

答案 1 :(得分:1)

将其设为模板功能:

template<typename _Scalar, int _Dim, int _Degree>
void myFunction(Spline<_Scalar, _Dim, _Degree> &spline) {
  // do stuff...
}