是否可以使用带模板参数的特征块表达式作为左值? 我使用一个特征C++库来解决函数的问题。这是他们其中一个示例的模板版本,但我似乎无法使其在xcode中工作 template <typename Scalar> void foo(){ Eigen::Matrix<Scalar, 2, 2> m = Eigen::Matrix<Scalar, 2, 2>::Identity(); Eigen::Matrix<Scalar, 4, 4> a = Eigen::Matrix<Scalar, 4, 4>::Constant(0.6); a.topLeftCorner<2,2>() = m; //Expected expression! std::cout << "result:" << std::endl << a << std::endl << std::endl; } 模板 void foo(){ 特征::矩阵m=特征::矩阵::恒等式(); 本征::矩阵a=本征::矩阵::常数(0.6); a、 topLeftCorner()=m;//应为表达式! std::cout

是否可以使用带模板参数的特征块表达式作为左值? 我使用一个特征C++库来解决函数的问题。这是他们其中一个示例的模板版本,但我似乎无法使其在xcode中工作 template <typename Scalar> void foo(){ Eigen::Matrix<Scalar, 2, 2> m = Eigen::Matrix<Scalar, 2, 2>::Identity(); Eigen::Matrix<Scalar, 4, 4> a = Eigen::Matrix<Scalar, 4, 4>::Constant(0.6); a.topLeftCorner<2,2>() = m; //Expected expression! std::cout << "result:" << std::endl << a << std::endl << std::endl; } 模板 void foo(){ 特征::矩阵m=特征::矩阵::恒等式(); 本征::矩阵a=本征::矩阵::常数(0.6); a、 topLeftCorner()=m;//应为表达式! std::cout,c++,xcode,templates,eigen,C++,Xcode,Templates,Eigen,你需要写 a.template topLeftCorner<2,2>() = m; a.template topLeftCorner()=m; 这里有这样的解释:Oops,糟糕透了。我觉得我自己也有点失望。

你需要写

a.template topLeftCorner<2,2>() = m;
a.template topLeftCorner()=m;

这里有这样的解释:

Oops,糟糕透了。我觉得我自己也有点失望。