gpt4 book ai didi

c++ - 从 GCC 5.4 升级到 GCC 7.2 后 Eigen 3.3.4 的警告

转载 作者:搜寻专家 更新时间:2023-10-31 02:08:32 25 4
gpt4 key购买 nike

当我使用 GCC 5.4 使用 -Wall -Werror 编译我的代码时,它工作正常。当我尝试使用 GCC 7.2(从源代码构建为 native 编译器)时,它给出了这个:

error: enum constant in boolean context [-Werror=int-in-bool-context]
MayLinearVectorize = bool(MightVectorize) && MayLinearize && DstHasDirectAccess

一个重现问题的小例子:

#include <Eigen/Dense>

using namespace Eigen;

int main()
{
Matrix<double,Dynamic,1> v = Matrix<double,Dynamic,1>::Constant(5, 1);
return 0;
}

使用 g++7 eigtrivial.cpp -I$EIGEN_DIR -Wall -Werror 编译。

如果我在没有 -Werror 的情况下尝试,我会收到警告,但它会编译,并且我的所有(少数)测试都通过了 - 据我所知它很好。但是,我想保留所有警告和 -Werror 启用。任何人都可以对此有所了解吗?

最佳答案

正如 ggael 所说,这已得到修复,但尚未包含在官方 tarball 中。从 Mercurial 存储库(目前版本为 3.3.90)克隆并在我的代码中使用它解决了这个问题。

关于c++ - 从 GCC 5.4 升级到 GCC 7.2 后 Eigen 3.3.4 的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47483026/

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