【发布时间】:2019-12-05 09:19:47
【问题描述】:
我正在编写模板函数,它应该将一些Eigen::MatrixBase<Derived> 作为输入,执行一些计算,然后返回新的特征值。我想以与输入相同的存储顺序返回值。
但我不知道如何从Eigen::MatrixBase<Derived> 获取存储订单。在这种情况下我能做什么,有可能吗?我知道我可以将存储顺序作为另一个模板参数传递,或者接收Eigen::Matrix<InpScalar, InpStatRows, InpStatCols, InpStorageOrder>,但如果可能的话,我想避免它
PS 对不起我的英语不好
【问题讨论】:
-
你确定这就是你想要的吗?
MatrixBase用作 “任何矩阵、向量或表达式” (source) 的基类,因此特定于矩阵的存储顺序选项不适用 -
@kmdreko 我同意,这可能是个坏主意。顺便说一句,可以通过 .derived() 从 MatrixBase
获取数据指针。所以也许也可以提取存储顺序 -
@kmdreko 你知道如何在不指定所有模板参数的情况下声明接收一般特征矩阵的模板函数吗? (标量、行、列等)
标签: c++ templates eigen eigen3