如何在Eigen中的模板函数中同时使用MatrixBase和DenseBase

时间:2013-03-01 00:01:40

标签: c++ eigen

我发现我可以创建这样的模板化特征函数:

template <>
CIL_EXPORTS
    void gpa<std::complex<float>>(const Eigen::EigenBase<std::complex<float>>& Data);

在函数中我还需要来自DenseBase的方法。如何从两个基类访问方法?

1 个答案:

答案 0 :(得分:1)

表达“Eigen :: EigenBase&lt; std :: complex&lt; float&gt;&gt;”没有意义。 EigenBase模板参数是派生类,而不是标量类型。它必须是Matrix,Array等。通常它应该是模板参数。请先阅读page

无论如何,一旦获得了正确的EigenBase或DenseBase,就可以使用arg.derived()或者将其转换为派生类型一次访问派生类成员(不是基类!):const Derived&amp;垫(arg.derived());