如何在g++中使用C++20

n6lpvg4x  于 2023-01-18  发布在  其他
关注(0)|答案(4)|浏览(2179)

我试图访问std::popcount,但它似乎只存在于C++ 20中。
当我尝试使用g++ -std=c++20 main.cpp编译时,它显示为g++: error: unrecognized command line option '-std=c++20'; did you mean '-std=c++03'
我如何告诉g使用c 20?
我使用的是Ubuntu 18.04

b5buobof

b5buobof1#

C20特性自GCC 8起可用。
要启用C
20支持,请添加命令行参数
-std=c++20
适用于G++ 9及以后版本
-std=c++2a
或者,要启用除C++20功能之外的GNU扩展,请添加
-std=gnu++20

pbpqsu0x

pbpqsu0x2#

我会尝试更新gcc。C++ 20是在gcc版本8中引入的,这是相当新的。

ghhkc1vu

ghhkc1vu3#

如果可以的话,你可以升级到Ubuntu 20.04 LTS,其中包含GCC版本9,这样你就可以使用C++ 20,也就是std::popcount
注意:在GCC 9和更早版本中使用-std=c++2a

mzillmmw

mzillmmw4#

有不同版本的编译器存在,g++通常是链接到旧的。对我来说,目前的是g++-9,它显然不理解C20。
C
20需要安装gcc-10g++-10(以及依赖项)。假设您已经安装了它们,那么您需要运行:

g++-10 -std=c++20 main.cpp

PS:如果你想默认使用v10,那么更新gccg++和其他相关的链接,并使用v9(或任何旧的)的全名。
编辑:根据主机操作系统,也可以安装v11和v12,但命名仍然很重要。请替换为g++-11g++-12

相关问题