具有相应版本的MSVC功能列表?

时间:2018-04-19 18:10:03

标签: c visual-c++

我正在尝试找到MSVC功能列表及其出现的相应版本,以便我可以执行以下操作:

#if defined(_MSC_VER) && _MSC_VER > X
#define MY_INLINE __forceinline
#else
#define MY_INLINE inline
#endif

例如,gcc有一个minimum version for all attributes列表。 MSVC是否有类似内容?

1 个答案:

答案 0 :(得分:4)

本文介绍了从 Visual Studio 2015 返回到 Visual Studio 2003 的所有重大更改,以及本文中的术语"新行为"或者"现在"请参阅Visual Studio 2015及更高版本。条款"旧行为" "之前"请参阅Visual Studio 2013和早期版本:

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

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

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

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

以下是有关使用MSVC的Internal Version Numbering的信息:

  

预定义的宏_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)