Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 具有本征类的非限定id_C++_Eigen - Fatal编程技术网

C++ 具有本征类的非限定id

C++ 具有本征类的非限定id,c++,eigen,C++,Eigen,下面的代码似乎有问题。我收到了错误信息 错误:数字常量前应为非限定id 特征::矩阵M_inv1_abc=姿势块(0, 0)逆(); 这是一个代码示例: 模板 特征::矩阵函数(特征::矩阵姿态) { //这里失败了 特征::矩阵M_inv1=姿势块(0,0).inverse(); //这是有效的,样品来自https://eigen.tuxfamily.org/dox/group__TutorialMatrixClass.html 本征::矩阵m(4,4); 本征::矩阵y(2,2); m尝试

下面的代码似乎有问题。我收到了错误信息

错误:数字常量前应为非限定id

特征::矩阵M_inv1_abc=姿势块(0, 0)逆(); 这是一个代码示例:

模板
特征::矩阵函数(特征::矩阵姿态)
{
//这里失败了
特征::矩阵M_inv1=姿势块(0,0).inverse();
//这是有效的,样品来自https://eigen.tuxfamily.org/dox/group__TutorialMatrixClass.html 
本征::矩阵m(4,4);
本征::矩阵y(2,2);
m尝试以下操作(在块子表达式周围添加括号):

模板
特征::矩阵函数(特征::矩阵姿态)
{
特征::矩阵M_inv1=(姿势块(0,0)).inverse();
// ...
}
姿势模板块(0,0).inverse();

详细说明,你可以参考C++如何推断变量的类型< /p>见,你需要在块之前添加模板关键字:<代码> PaseY.List模板块(0, 0)< /C>。谢谢,这有帮助。我想把你的帖子标记为解决方案,我怎么做(在这个论坛中新建)
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);

}
template<typename T> 
Eigen::Matrix<T, 4, 1> Function(Eigen::Matrix<T, 3, 4> pose_l)
{
    Eigen::Matrix<T, 3, 3> M_inv1 = (pose_l.block<3, 3>(0, 0)).inverse();
    // ...
}
pose_l.template block<3, 3>(0, 0).inverse();