c++ - 有没有办法找出代码中编译器的版本?

标签 c++ compiler-construction

是否可以在代码中获取编译器的版本?例如使用一些编译器指令?
我正在尝试查找编译器的版本,然后假设 GccVisual C++ 的版本是否兼容 C++11然后编译这段代码,如果没有,则编译该代码段

最佳答案

您可以使用__cplusplus宏来检查编译器是否支持C++11,以便它即使在您不了解的编译器上也能工作。

#if __cplusplus >= 201103L
//C++ 11 code here
#endif

16.8 预定义宏名称

1 以下宏名称应由 __cplusplus 定义 编译 C++ 翻译单元时,名称 __cplusplus 被定义为值 201103L。

157) 该标准的 future 版本将用更大的值替换该宏的值。不合格的编译器应使用最多五位小数的值。

关于c++ - 有没有办法找出代码中编译器的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17855884/

相关文章:

c# - 可以将变量传递给 C# 编译器代码吗?

c++ - 哪个编译器支持带默认参数的函数指针?

c++ - 无意中使用 = 而不是 ==

c++ - 此应用程序无法启动,因为它无法在 "xcb"中找到或加载 Qt 平台插件 ""。并且找不到/usr/lib/qt5

c++ - long long 在 32 位机器上的实现

c++ 我是否需要手动删除一个指向另一个具体类型的 void* 指针?

c++ - 使用stringstream从c++中的字符串中提取整数时出现意外重复

c++ - 最后一幕出现黑色背景

c++ - 我如何使用 MSVC++ 2010 使 dll 更小?

dynamic - DLL 和 LIB 文件