我需要定义一个函数,它需要const
C 数组并将其映射到Eigen
地图。以下代码给我一个错误:
double data[10] = {0.0};
typedef Eigen::Map<Eigen::VectorXd> MapVec;
MapVec fun(const double* data) {
MapVec vec(data, n);
return vec;
}
如果我删除const
从函数定义来看,代码运行良好。但是否可以保留const
没有任何错误?
Thanks.
If the Map
的参数是一个非const
类型(例如Eigen::VectorXd
)然后它假设它可以修改原始缓冲区(在你的情况下*data
)。由于该函数期望const
合格的缓冲区,你必须告诉地图它是const
。定义你的typedef
as
typedef Eigen::Map<const Eigen::VectorXd> MapVec;
它应该有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)