【发布时间】:2017-01-19 14:10:48
【问题描述】:
下面的代码似乎有问题。我收到错误消息
错误:数字常量之前的预期不合格 ID
特征::矩阵 M_inv1_abc =pose_l.block(0, 0).inverse(); 这是一个代码示例:
template<typename T>
Eigen::Matrix<T, 4, 1> Function(Eigen::Matrix<T, 3, 4> pose_l)
{
// fails here
Eigen::Matrix<T, 3, 3> M_inv1 = pose_l.block<3, 3>(0, 0).inverse();
// this works, sample is from https://eigen.tuxfamily.org/dox/group__TutorialMatrixClass.html
Eigen::MatrixXf m(4,4);
Eigen::MatrixXf y(2,2);
m << 1, 2, 3, 4,
5, 6, 7, 8,
9,10,11,12,
13,14,15,16;
y = m.block<2,2>(1,1);
}
对于示例 MatrixXf,我不使用我的模板...
我重命名了pose_l和M_inv1;在其他帖子中,例如 Expected unqualified-id before numeric constant for defining a number 重新定义有帮助,但对我来说没有。
我错过了什么?
最好的 曼努克劳斯
【问题讨论】:
-
看到这个page,需要在block前加上template关键字:
pose_l.template block<3, 3>(0, 0)。 -
谢谢,这有帮助。我想将您的帖子标记为解决方案,我该怎么做(此论坛中的新内容...)