我试图将任意 Eigen-Vector/Array 类型的内容转换为 std::array。我从 Eigen 文档http://eigen.tuxfamily.org/dox/TopicFunctionTakingEigenTypes.html中阅读了这一部分,所以这是我的功能:
template<typename DERIVED>
std::array<typename Eigen::DenseBase<DERIVED>::Scalar, Eigen::DenseBase<DERIVED>::RowsAtCompileTime>
toStl (const Eigen::DenseBase<DERIVED>& input)
{
... // Do conversion
}
现在的问题是,当我从输入参数类型中删除与号以获取副本时,我得到一个空输入变量。它包含系数 0 的一些虚假值,其余为零。
当我通过引用获取参数时,一切正常。谁能告诉我为什么?
PS.:对于那些可能想知道我为什么要复制的人;本次演讲中是否建议以帮助优化器:http ://www.youtube.com/watch?v=eR34r7HOU14 (下半场至结束)