我想编写一个带Eigen Spline的函数,这是一个模板化的类
Spline<typename _Scalar, int _Dim, int _Degree>
是否有可能(以及我如何)编写一个函数,它不是Spline类的成员函数,它接受泛型Spline并使用_Scalar,_Dim和_Degree变量?它们是公开的enum
和typedef
。
答案 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...
}