如何通过预处理器宏检测 Visual Studio (VS) C++ 编译器是否支持 C++11?我尝试使用 __cplusplus
(许多人建议用于此类检查的预处理器宏)但它在 VS C++ 2010 编译器中失败(即从未声明函数 get_dimension
) :
#if __cplusplus > 199711L
int get_dimension(int index);
#endif
最佳答案
您可以使用 _MSVC_LANG
查看开箱即用的宏。
__cplusplus
是语言多编译器 象牙塔 类的解决方案,但不幸的是必须在 MSVC
中启用它才能有意义地使用(并且可能不支持非常旧的版本)。这对于使用例如的人来说太棒了。 gcc
默认情况下使用版本设置(大多数人会相信它也适用于 MSVC
)。所以只有当你需要支持很多编译器时我才会担心,即使那样我也会考虑为一些编译器添加特殊检查,即 MSVC
。
关于c++ - 如何检测 VS C++ 编译器是否支持 C++11?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62574732/