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'
环境:
- 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
然后我得到错误:
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 的一致性查看器。
环境:
- 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
然后我得到错误:
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 的一致性查看器。