首页 > 解决方案 > std::gcd 不能在 g++ 5.4.0 中编译——“gcd”不是“std”的成员

问题描述

环境:

这是代码:

#include <numeric>
...
auto g = std::gcd(10, 4);
...

-std=c++17我在编译命令中打开了选项:

g++ -m64 -std=c++17   -c -g -w -MMD -MP -MF "build/Debug/GNU-Linux/main.o.d" -o build/Debug/GNU-Linux/main.o main.cpp

然后我得到了错误:

错误:“gcd”不是“std”的成员

这个网页std::gcd从 C++17 开始介绍。

这个网页上,我的 g++ 版本支持 C++17。

但是为什么还是有错误?相同的代码在 Visual Studio 2017 中编译没有任何错误。

标签: c++g++stdc++17greatest-common-divisor

解决方案


std::gcd仅从 GCC 7.1 开始可用。

来自表 1.5。C++ 2017 实施状态

在此处输入图像描述

查看多个GCC 版本的一致性查看器。


推荐阅读