各个版本的 MSVC 功能列表?

Mic*_*ith 1 c visual-c++

我正在尝试MSVC使用它们出现的相应版本查找功能列表,以便我可以执行以下操作:

#if defined(_MSC_VER) && _MSC_VER > X
#define MY_INLINE __forceinline
#else
#define MY_INLINE inline
#endif
Run Code Online (Sandbox Code Playgroud)

随着gcc例如,存在的一个列表最低版本的所有属性。有类似的东西MSVC吗?

Abh*_*hri 5

本文介绍了从Visual Studio 2015回到Visual Studio 2003 的所有重大更改,在本文中,术语“新行为”或“现在”指的是 Visual Studio 2015 及更高版本。术语“旧行为”和“之前”指的是 Visual Studio 2013 和更早版本:


本文介绍了 Visual C++ 中的 C++11/14/17 特性:


下表显示了对新 C++ 功能的编译器支持:


以下是我发现的其他一些参考资料:


此链接总结了 Visual Studio 2017 中 C++ 编译器的编译器功能和标准库功能的 ISO C++03、C++11、C++14、C++17 和草案 C++20 语言标准一致性,以及早期版本:


以下是有关使用MSVC内部版本编号的信息:

预定义宏 _MSC_VER 指示 Visual C++ 编译器的主要和次要版本号。宏的值是一个整数文字,其中最后两位数字表示次要版本号,前面的数字表示主要版本号。

从 Visual Studio 2017 开始,_MSC_VER 在每次 Visual C++ 工具集更新时单调递增。因此,例如,Visual Studio 2017 版本 15.3.0 附带的 MSVC++ 14.1 版本将 _MSC_VER 设置为 1911。Microsoft 建议使用 >= 运算符来测试 _MSC_VER 的值。

以下是各种版本的 Visual C++ 编译器的 _MSC_VER 值:

MSC    1.0   _MSC_VER == 100
MSC    2.0   _MSC_VER == 200
MSC    3.0   _MSC_VER == 300
MSC    4.0   _MSC_VER == 400
MSC    5.0   _MSC_VER == 500
MSC    6.0   _MSC_VER == 600
MSC    7.0   _MSC_VER == 700
MSVC++ 1.0   _MSC_VER == 800
MSVC++ 2.0   _MSC_VER == 900
MSVC++ 4.0   _MSC_VER == 1000 (Developer Studio 4.0)
MSVC++ 4.2   _MSC_VER == 1020 (Developer Studio 4.2)
MSVC++ 5.0   _MSC_VER == 1100 (Visual Studio 97 version 5.0)
MSVC++ 6.0   _MSC_VER == 1200 (Visual Studio 6.0 version 6.0)
MSVC++ 7.0   _MSC_VER == 1300 (Visual Studio .NET 2002 version 7.0)
MSVC++ 7.1   _MSC_VER == 1310 (Visual Studio .NET 2003 version 7.1)
MSVC++ 8.0   _MSC_VER == 1400 (Visual Studio 2005 version 8.0)
MSVC++ 9.0   _MSC_VER == 1500 (Visual Studio 2008 version 9.0)
MSVC++ 10.0  _MSC_VER == 1600 (Visual Studio 2010 version 10.0)
MSVC++ 11.0  _MSC_VER == 1700 (Visual Studio 2012 version 11.0)
MSVC++ 12.0  _MSC_VER == 1800 (Visual Studio 2013 version 12.0)
MSVC++ 14.0  _MSC_VER == 1900 (Visual Studio 2015 version 14.0)
MSVC++ 14.1  _MSC_VER == 1910 (Visual Studio 2017 version 15.0)
MSVC++ 14.11 _MSC_VER == 1911 (Visual Studio 2017 version 15.3)
MSVC++ 14.12 _MSC_VER == 1912 (Visual Studio 2017 version 15.5)
MSVC++ 14.13 _MSC_VER == 1913 (Visual Studio 2017 version 15.6)
MSVC++ 14.14 _MSC_VER == 1914 (Visual Studio 2017 version 15.7)
Run Code Online (Sandbox Code Playgroud)