我正在尝试将矩阵块作为函数的左值返回。假设我的函数如下所示:
Block<Derived> getBlock(MatrixXd & m, int i, int j, int row, int column)
{
return m.block(i,j,row,column);
}
事实证明,C++ 编译器似乎理解 block() 运算符仅提供临时值,因此编译器禁止将其作为左值返回。但是,在 Eigen 文档中有一些示例,我们可以将 Eigen 用作左值(http://eigen.tuxfamily.org/dox/TutorialBlockOperations.html#TutorialBlockOperationsUsing)所以我想知道我们如何不能对函数做同样的事情返回。
a.block(0,0,2,3) = a.block(2,1,2,3);
谢谢!