std :: gcd无法在g ++ 5.4.0中编译-'gcd'不是'std'的成员

时间:2019-02-18 11:52:00

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

环境:

  • Ubuntu 16.04 64位
  • g ++版本5.4.0

这是代码:

#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”的成员

this webpage开始,从C ++ 17开始引入std::gcd

this webpage开始,我的g ++版本支持C ++ 17。

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

1 个答案:

答案 0 :(得分:4)

std::gcd仅从GCC 7.1起可用。

来自Table 1.5. C++ 2017 Implementation Status

enter image description here

查看多个GCC versions的一致性查看器。