如何在代码中判断不同的C++标准
时间: 2024-10-15 19:08:32 浏览: 15
在C++中,你可以通过检测`__cplusplus`宏来判断所使用的C++标准版本。这个宏通常会返回一个整数值,表示当前编译器支持的标准版本号。
1. 检查C++标准版本[^1]:
```cpp
# if __cplusplus >= 201402 // C++14 or later
// Your code for C++14 and above features
# elif __cplusplus == 199711L // C++98/03 (Visual Studio specific)
// Your code for C++98/C++03
# else
// Compatibility check for other versions
# endif
```
这里,`__cplusplus >= 201402`检查是否支持C++14及以上版本,而`__cplusplus == 199711L`则是针对Microsoft Visual Studio的特定情况,它可能在新的C++标准下仍保持为199711L。
如果你遇到`__cplusplus`值始终为199711L的问题,在VS中可以尝试使用其他宏如 `_MSVC_LANG` 或 `__cpp_variadic_templates` 来确定具体版本:
```cpp
// For Visual Studio
# if _MSVC_LANG >= 201402 // Same as checking __cplusplus >= 201402 in MSVC
// ...
# else
// ...
# endif
```
阅读全文