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 用法和参考的所有可能组合。