概述
C++ 判断标准版本和编译器
注意: 本人是原创, 如若发现雷同,后果自负
开发环境
大部分编译器都支持
原理
C++ 20 不确定
clang 和 gcc 判断__cplusplus
__cplusplus 的值 | |
---|---|
C++ 17 | 201703L |
C++ 14 | 201402L |
C++ 11 | 201103L |
C++ 03 以下 | 199711L |
msvc 判断_MSVC_LANG
_MSVC_LANG 的值 | |
---|---|
C++ 17 | 201703L |
C++ 14 | 201402L |
C++ 11 | 201103L |
C++ 03 以下 | 199711L |
判断使用的编译器
宏 | |
---|---|
msvc | _MSC_VER |
clang | __clang__ |
gcc | __GNUC__ |
实现
// cpp.hpp
#ifndef CPP_HPP
#define CPP_HPP
#if defined(__clang__) || defined(__GNUC__)
#define CPP_STANDARD __cplusplus
#elif defined(_MSC_VER)
#define CPP_STANDARD _MSVC_LANG
#endif
#if CPP_STANDARD >= 199711L
#define HAS_CPP_03 1
#endif
#if CPP_STANDARD >= 201103L
#define HAS_CPP_11 1
#endif
#if CPP_STANDARD >= 201402L
#define HAS_CPP_14 1
#endif
#if CPP_STANDARD >= 201703L
#define HAS_CPP_17 1
#endif
#endif
结论
为了优化代码和兼容性, 可以判断使用的C++版本
QQ交流群: 552641067
最后
以上就是尊敬西牛为你收集整理的C++ 判断标准版本和编译器C++ 判断标准版本和编译器的全部内容,希望文章能够帮你解决C++ 判断标准版本和编译器C++ 判断标准版本和编译器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复