C ++ 11x和Eigen库

时间:2015-08-13 00:32:08

标签: c++ c++11 eigen

我想编译一个程序,在那里我使用

初始化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

对于上面的代码行,出了什么问题?

1 个答案:

答案 0 :(得分:1)

将其更改为:

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

那已经只分配了真实的部分。

如果要根据实部和虚部分配一般复数,请使用例如

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