我试图利用预编译的标头来加快以下链接的编译速度:https ://codeforces.com/blog/entry/53909
我观察到头文件的预编译和 .cpp 程序的后续编译必须使用相同的 g++ 标志来完成,以加快工作速度,这是有道理的。但是,将 c++ 标准显式设置为默认标准是行不通的。g++ stdc++.h
因此,使用和后续的预编译都没有g++ -std=c++14 program.cpp
,也没有g++ -std=c++14
工作g++ 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 有什么区别?另外,对我来说,专门选择其中任何一个是否足够重要?