类中的类型为Eigen :: MatrixBase <derived>的类成员?什么是&#34;派生&#34;?

时间:2017-05-21 01:13:38

标签: c++ templates eigen

我正在创建一个Base类和Derived类。派生类将保持值Eigen::Matrix<T,int,int>,并继承Base的所有方法。

我这样做是因为不管矩阵类型如何都是相同的,因为Matrix的模板参数不同,所以不会重复这些方法。虽然基类中的这些方法可以在MatrixBase上执行,但我不能将MatrixBase的类型作为我的Base类的成员,因为它需要一个&#34;派生的&#34;模板arg。

&#34;派生的&#34;参考?

文档说:

  

派生是派生类型,例如矩阵类型或表达式

我不太清楚这意味着什么。是否有&#34;派生&#34;的任何实例?我可以填写MatrixBase的类型吗?

1 个答案:

答案 0 :(得分:1)

根据您的具体情况,创建 Eigen插件而不是创建新类可能是个好主意。 Eigen插件允许您向现有(模板化)特征类添加新方法,如文档here所示。您可以使用不同的宏来实现此目的,here

正如chtz所指出的,插件的缺点是你冒着与使用不同插件的库不兼容的风险。