gpt4 book ai didi

c++ - "+="操作在类型 std::complex 和 __complex__ double 之间不起作用

转载 作者:行者123 更新时间:2023-12-04 08:48:08 24 4
gpt4 key购买 nike

我正在使用 Eigen 在 C++ 中执行一些矩阵操作。在其中,我有一行示意性的表格

MatrixXcd A = MatrixXcd::Zeros(10,10);
A(0,0) += 2.0*1i;

在我的本地计算机上编译这个没有问题。但是,使用相同的 CMake 文件在不同的计算机上编译它会出现以下错误:

error: no match for ‘operator+=’ (operand types are ‘Eigen::DenseCoeffsBase<Eigen::Matrix<std::complex<double>, -1, -1>, 1>::Scalar {aka std::complex<double>}’ and ‘__complex__ double’)

所以不知何故类型 std::comple<double>__complex__ double是不同的,并且计算机无法解决差异。有人可以向我解释这些差异是什么,以及如何消除差异?我可以尝试找出两台计算机的不同配置方式,但这似乎是一个更难获得在线帮助的问题。

最佳答案

添加了 C++ 14 new literal syntax制作a+bi评估为 std::complex<double> .

添加应该就够了

set(CMAKE_CXX_STANDARD 14) # or 17

到您的 CMakeLists.txt 文件,使两个编译器再次一致。

关于c++ - "+="操作在类型 std::complex<double> 和 __complex__ double 之间不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59257147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com