Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ g++-5.1.0配备增压支持C和x2B+;17?_C++_Boost_G++_C++17 - Fatal编程技术网

C++ g++-5.1.0配备增压支持C和x2B+;17?

C++ g++-5.1.0配备增压支持C和x2B+;17?,c++,boost,g++,c++17,C++,Boost,G++,C++17,我试图使用g++-5.1.0(2015)和Boost-1.71.0在windows7上编译特定于C++17的gcd代码: #包括 int main(){ int x=90; int y=9; 返回gcd(x,y); } 当我编译它时: g++ gcd.cpp -IC:\Programs\boost-1.71.0\include -std=c++17 它显示错误:“gcd”未在此范围内声明 如果这次我#include,它会显示错误:在“(”token”之前缺少模板参数,指的是gcd的( g++

我试图使用
g++-5.1.0(2015)
Boost-1.71.0
windows7上编译特定于C++17的gcd代码:

#包括
int main(){
int x=90;
int y=9;
返回gcd(x,y);
}
当我编译它时:

g++ gcd.cpp -IC:\Programs\boost-1.71.0\include -std=c++17
它显示
错误:“gcd”未在此范围内声明

如果这次我
#include
,它会显示
错误:在“(”token
”之前缺少模板参数,指的是gcd的(

g++-5.1.0
是否正确地支持C++17?如果是这样,如何使它正确地处理
C++17
代码?谢谢。

::mpl::gcd(x,y)
不是C++17中的任何东西

我想你是指
std::gcd


此外,gcc-5.1(于2015年4月发布)实现
std::gcd
(一个C++17功能)的几率相当低。它可以在那里实现,但这不是一件确定的事情。

我无法让它与::mpl一起运行,因为它似乎是比率的辅助结构。另一方面,你的意思是:

boost::math::gcd(x,y)


它(
::mpl
)是我上一次迭代的残余,我忘了删除它。我编辑了这篇文章。如果我把它改成
std::gcd
,它又是:
错误:“gcd”不是“std”的成员
,那么我怀疑gcc5.1没有实现该c++17功能。使用编译器资源管理器进行一些探索(使用
std::gcd
而不仅仅是
gcd
)建议它是为gcc-7添加的是,但gcc-5.1接受
-std=c++17
选项。如果我将其更改为例如c++16或c++19,它会显示
无法识别的命令行选项“-std=c++19
,这使我认为它应该以某种方式支持c++17。它确实部分支持c++17。建议添加
gcd直到2016年3月才被写入。如果我在前缀
boost::math::
中加上前缀,它会说:
错误:
还没有声明:
:mpl
你是对的,它的
gcd
与我们所知道的
gcd
有些不相关(最大公约数),但我尝试它的原因是什么(通过包含
boost/ratio/detail/mpl/gcd.hpp
)是因为当我这样做时,编译器接受它,即(估计)g++-5.1.0
能够处理boost库(粗略地说)gcd位于
boost/integer
@user14717是的,gcd位于
boost/integer/common\u factor\u rt.hpp
中,它的正确前缀是
boost::integer::
现在它可以工作了:)在这种情况下,可以说带有boost的g++-5.1.0可以编译C++17特定的函数(据报道,gcd是由C++17引入的)但是使用稍微不同的头文件,即
numeric
vs
integer/common\u factor\u rt.hpp