错误:需要左值作为使用quadmath和随机数生成器的赋值的左操作数 我正在编译一个C++代码来运行一个DFT。我在我的代码中使用quadmath和一个随机数生成器来添加噪声。 以以下方式运行代码时: g++ code.cc -lquadmath -o quad
我没有收到任何错误,并且它已成功编译, 但由于使用了随机数生成器,我不得不编译为错误:需要左值作为使用quadmath和随机数生成器的赋值的左操作数 我正在编译一个C++代码来运行一个DFT。我在我的代码中使用quadmath和一个随机数生成器来添加噪声。 以以下方式运行代码时: g++ code.cc -lquadmath -o quad,c++,random,C++,Random,我没有收到任何错误,并且它已成功编译, 但由于使用了随机数生成器,我不得不编译为 g++ code.cc -lquadmath -std=gnu++0x -o quad 它给出了赋值的左操作数所需的错误lvaule。 引发此错误的代码行是: std::real(output_seq[y]) =std::real(output_seq[y])+( V2[x] * cosineA ); 您正在尝试为一个数字赋值std::real(output_seq[y])将复数的实部作为值返回。不能为其分配新
g++ code.cc -lquadmath -std=gnu++0x -o quad
它给出了赋值的左操作数所需的错误lvaule。
引发此错误的代码行是:
std::real(output_seq[y]) =std::real(output_seq[y])+( V2[x] * cosineA );
您正在尝试为一个数字赋值
std::real(output_seq[y])
将复数的实部作为值返回。不能为其分配新值,因为它不表示地址位置
您要做的可能是:
output_seq[y].real(标准::real(output_seq[y])+(V2[x]*cosineA));
它只能在使用以下信息的C++11上工作您正试图为一个数字赋值
std::real(output_seq[y])
将复数的实部作为值返回。不能为其分配新值,因为它不表示地址位置
您要做的可能是:
output_seq[y].real(标准::real(output_seq[y])+(V2[x]*cosineA));
它将仅使用以下信息与C++11一起工作您正试图为
std::real
的结果赋值,该结果是一个
这和写作一样有道理
5.0f = std::real(output_seq[y]) + (V2[x] * cosineA);
所以你可能想改成这样
output_seq[y] = std::real(output_seq[y]) + (V2[x] * cosineA);
您正试图为
std::real
的结果赋值,这是一个
这和写作一样有道理
5.0f = std::real(output_seq[y]) + (V2[x] * cosineA);
所以你可能想改成这样
output_seq[y] = std::real(output_seq[y]) + (V2[x] * cosineA);