std::gcd 不能在 g++ 5.4.0 中编译——'gcd' 不是 'std' 的成员

std::gcd does not compile in g++ 5.4.0 -- 'gcd' is not a member of '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

然后我得到错误:

error: 'gcd' is not a member of 'std'

this webpage,自C++17起引入std::gcd

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

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

std::gcd 仅适用于 GCC 7.1 及更高版本。

来自Table 1.5. C++ 2017 Implementation Status

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