有没有一种方法可以在代码中计算出编译器的版本
Is there a way to figure out the version of a compiler in code?
是否可以在代码中获得编译器的版本?例如使用一些编译器指令
我正在尝试查找编译器的版本,然后假设Gcc
或Visual C++
的版本是否符合C++11
,则编译这段代码,如果不符合,则编译该代码段,而不是
您可以使用__cplusplus
宏检查编译器是否支持C++11,以便它即使在您不了解的编译器上也能工作。
#if __cplusplus >= 201103L
//C++ 11 code here
#endif
16.8预定义的宏名称
1下列宏名称应由__cplusplus定义编译C++翻译单元时,名称__cplusplus被定义为值201103L。
157)本标准的未来版本将用更大的值替换此宏的值。不合格的编译器应使用最多包含五位小数的值。
在gcc和clang中,可以使用__VERSION__
宏。
如果你想知道你使用的是什么编译器,他们有自己预定义的宏,链接在其他注释中。但您表示这样做是为了发现C++11支持的存在。在这种情况下,正确的代码是
#if __cplusplus <= 199711L
//No C++11 support
#else
//Congratulations, C++11 support!
#endif
根据该标准,编译器需要设置该变量,它指示版本。在Bjarne的页面上查看
相关文章:
- 我的字符计数代码计算错误.为什么
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 代码在我的计算机上运行良好,但是在将其提交给coursera时遇到未知的信号11问题
- 计算两个代码块的时间复杂度
- 计算出有多少客户端可以连接到我正在使用的一些tcp服务器代码
- 如果代码包含多个复杂度循环,如何计算复杂度
- 在实现合并排序代码时无法计算所有反转
- 如何在数组类型的模板代码中计算std::size_t
- 为什么这两个相似的代码计算行列式的结果不同?
- 根据计算机上安装的库依赖项编译不同的代码
- 此代码如何计算数字的奇偶校验?
- 代码的最优解,以便它可以执行高达 10^18 的计算
- 交叉和计算,任何人都可以解释代码吗?
- 使用额外的变量使计算更容易理解 - (多少)我减慢了代码的速度?
- 计算代码块的 O 表示法
- 计算代码行数
- 如何计算C++代码段的 CPU 周期成本
- 如何更快地计算代码
- 我如何改进这个GPA计算代码
- 在高度优化的代码中计算代码运行时