C++ 判断标准版本和编译器
2021-03-27 06:25
标签:order table font nbsp gcc 例子 一个 efi ali VS 编译器判断 _MSVC_LANG ,_MSVC_LANG的值如下: gcc/clang需要判断 __cplusplus ,__cplusplus值 常见c++编译器有3中: msvc、clang、gcc, 各自对应的宏分别如下: C++ 判断标准版本和编译器 标签:order table font nbsp gcc 例子 一个 efi ali 原文地址:https://www.cnblogs.com/pandamohist/p/13671049.htmlA、判断c++版本
1、msvc
_MSVC_LANG值
C++17
201703L
C++14
201402L
C++11
201103L
C++03及低于c++03
199711L
2、gcc / clang
__cplusplus值
C++17
201703L
C++14
201402L
C++11
201103L
C++03及低于03版本
199711L
B、判断编译器
msvc
_MSC_VER
gcc
__GNUC__
clang
__clang__
C、一个例子
1、判断c++版本
1 #if __cplusplus >= 199711L
2
3 #define cpp_03
4
5 #elif __cplusplus >= 201103L
6
7 #define cpp_11
8
9 #elif __cplusplus >= 201402L
10
11 #define cpp_14
12
13 #elif __cplusplus >= 201703L
14
15 #defined cpp_17
16
17 #endif
2、判断编译器
1 #if defined(__clang__) || defined(__GNUC__)
2
3 #define cpp_standard __cplusplus
4
5 #elif defined(_MSC_VER)
6
7 #define cpp_standard _MSVC_LANG
8
9 #endif
下一篇:python多态与抽象类