我知道C++有标准而不是版本,因此它们的版本是由规范管理的(比如C99,C++11,其他版本)。
C++编译器有版本,每个版本都可以支持多个c++标准.是这样的吗?
与上述相关,我找到了我的g++版本编译器,即7.2.0
λ bgarcial [~] → g++ --version
g++ (Ubuntu 7.2.0-8ubuntu3) 7.2.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
λ bgarcial [~] →
我有我的g++编译器的以下目录,我使用本机makefile来用C++语言构建
λ bgarcial [include/c++/7] → pwd
/usr/include/c++/7
λ bgarcial [include/c++/7] →
如何确定哪些C++标准支持我的g++编译器?
g++文档包括以下信息:
GCC支持1998年发布的最初的C++标准,以及2011年和2014年的修订。默认情况下,如果没有提供C++语言方言选项,则为-std=gnu++14。
它还包含了这个有趣的部分:
默认情况下,GCC还为C++语言提供了一些额外的扩展,这些扩展在很少情况下与C++标准发生冲突。参见控制C++方言的选项。使用上面列出的-std选项将禁用这些扩展,如果它们与选定的C++标准版本相冲突。 您还可以显式地选择C++语言的扩展版本,包括-std=gnu++98 (对于带有GNU扩展的C++98 )、-std=gnu++11 (对于带有GNU扩展的C++11 )、或者对于-std=gnu++14 (对于带有GNU扩展的C++14 )、或者对于-std=gnu++1z (对于带有GNU扩展的C++1z )。
在给定的C++项目中,如何指定要使用的C++标准/规范类型?
在CMakeLists.txt可能是吗?或者..。
作为一个建立基本文件的标志?例如:
g++ client.cpp main.cpp -o client.out -lzmq -std=gnu++11
推荐的C++标准/规范是什么?
我之所以这样问,是因为在最初的情况下,我假设我在与上面提到的C++14编译器文档相关的GNU扩展中使用g++。在某些情况下,我没有使用某些函数或库,但我不知道这是由于所使用的标准还是其他原因。
推荐使用的C++标准是什么?我如何配置我的项目来使用它?
发布于 2018-02-05 18:10:19
可以使用-std开关指定标准。
$g++ -std=c++11 your_file.cpp -o your_program
https://stackoverflow.com/questions/48628739
复制相似问题