Eigen 引入了 Ref<> 类来编写以 Eigen 对象作为参数的函数,而无需使用不必要的临时变量,当不需要编写模板函数时。可以在这里阅读到这一点。
在进一步搜索互联网时,我发现了几种不同的使用 Ref<> 类的参数声明。在 Eigen 文档中,他们const Eigen::Ref<const Eigen::MatrixXf>&在第一个示例中使用只读参数。第二个例子Eigen::Ref<Eigen::MatrixXd>是针对读写参数介绍的,BUT这里const Eigen::Ref<const Eigen::MatrixXd>是针对只读参数的(不做参考)。所以我的问题是:
以下声明有什么区别,我什么时候使用哪个?
const Eigen::Ref<const Eigen::MatrixXd>&const Eigen::Ref<const Eigen::MatrixXd>const Eigen::Ref<Eigen::MatrixXd>&const Eigen::Ref<Eigen::MatrixXd>Eigen::Ref<const Eigen::MatrixXd>&Eigen::Ref<const Eigen::MatrixXd>Eigen::Ref<Eigen::MatrixXd>&Eigen::Ref<Eigen::MatrixXd>
为了完整起见,我列出了 const 用法和参考的所有可能组合。