C++11x 和 Eigen 库

C++11x and Eigen library

我想编译一个程序,我在 Eigen 中使用

初始化一个复数矩阵 MatrixXcd
MatrixXcd M;
M.resize(length,length);

M(i,j).real()=f(i,j)
M(i,j).imag()=f(i,j)

其中 f(i,j) 是 i,j 的 std::complex<double> 类型的某个函数。一切正常,除非我使用我确实需要的 -std=c++0x 编译器选项。使用此选项时,出现错误:

error: lvalue required as left operand of assignment

上面这行代码,哪里出了问题?

改为:

M(i, j) = f(i, j);

这已经只分配了实部。

如果要给定实部和虚部的一般复数,请使用例如

M(i, j) = std::complex<double>(f(i, j), g(i, j));