当默认标准是 201402L (c++14) 时,g++ 与 g++ -std=c++14 不同吗?

入队

我试图利用预编译的头文件来加速以下链接的编译:https : //codeforces.com/blog/entry/53909

我观察到必须使用相同的 g++ 标志来完成头文件的预编译和 .cpp 程序的后续编译,以加快工作速度,这是有道理的。但是,将 c++ 标准显式设置为默认标准是行不通的。因此,无论是使用预编译g++ stdc++.h和后续g++ -std=c++14 program.cpp,也没有,g++ -std=c++14g++ program.cpp工作。

这对我来说没有意义,因为我知道我的编译器 x86_64-w64-mingw32-g++.exe(gcc 版本 10.2.0)默认符合 201402L(c++14)标准,我认为使用g++ -dM -E -x c++ /dev/null | fgrep __cplusplus,并得到以下响应:

#define __cplusplus 201402L

所以,我的问题是,当 g++ 默认遵守 201402L 时,g++ 和 g++ -std=c++14 之间有什么区别?另外,对于我来说,专门选择其中任何一个是否足够重要?

布赖恩

-std=c++14默认情况下,GCC 不编译GCC 手册页(版本 9.3.0)中-std标志的描述

-std=确定语言标准。当前仅在编译 C 或 C++ 时支持此选项。

编译器可以接受多个基本标准,例如 c90 或 c++98,以及这些标准的 GNU 方言,例如 gnu90 或 gnu++98。当指定了一个基本标准时,编译器接受所有遵循该标准的程序以及那些使用与它不矛盾的 GNU 扩展的程序。
. . .
必须提供此选项的值;可能的值为
. .
c++14
c++1y
    2014 ISO C++ 标准加修正。名称 c++1y 已弃用。

gnu++14
gnu++1y
    -std=c++14 的 GNU 方言。这是 C++ 代码的默认设置。名称 gnu++1y 已弃用。
. . .

强调我的。当前的默认值是-std=gnu++14,它针对 C++14 标准,同时还支持C++ 语言的GNU 扩展的区分-std=c++XX标志和-std=gnu++XX标志进行说明进一步在什么是-std = C ++ 11和-std = GNU ++ 11之间的差异?.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

g ++无法识别标准14(-std = c ++ 14)

MinGW g ++ 4.8.1-4无法识别-std = c ++ 14

这是g ++ c ++ 14支持中的错误吗?

C ++ 14:标准是否允许从std :: end()中减去增量?

g ++编译选项-std = c ++ 14编译错误,显示Werror = c ++ 11-compat

在C ++ 14中继承模板化的operator =:g ++和clang ++的不同行为

用g ++编译c ++ 14代码

C ++朋友功能模板重载和SFINAE在clang ++,g ++,vc ++中的不同行为(C ++ 14模式)

在C ++ 14中支持std :: cbegin()

在Lambda C ++ 14中捕获std :: promise

C ++ 17 std ::在G ++中是可选的吗?

C ++ 14:返回{}时元组的默认值

工作C ++ 03代码上的G ++(C ++ 14)链接器错误

为什么std :: atomic构造函数在C ++ 14和C ++ 17中表现不同

同样的叮当声,std::initializer_list 程序与 -std=c++14/-std=c++17 的结果不同

哪个草案最接近C ++ 14标准?

如何在SCons中检查g ++是否支持c ++ 14/17?

NS3 - G++ 6.x 关于 c++14 的警告

g ++ 4.9拒绝C ++ 14中的有效聚合初始化

使用C ++ 14的自动函数类型返回推导代替std :: common_type总是安全吗?

C ++ 14自动lambda可以接受Obj <std :: tuple <void>>-但是模板函数不能吗?

我可以安全地混合使用-std = c ++ 11和-std = c ++ 14编译的库吗?

在C ++中将g ++和Visual Studio 14 2015编译器与regex一起使用时会得到不同的结果

通过boost :: shared_mutex在g ++-4.4(在C ++ 11/14中不是)的多读者单作家实现会影响性能吗?

Emscripten和C ++ 14

Lambda C ++ 14捕获

C ++ 14中的“ constexpr”

C ++ 14 RAM的使用

如何仅使用C ++ 14实现std :: from_chars()