我正在尝试查找 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
有类似的东西吗?
最佳答案
本文介绍了从 Visual Studio 2015 到 Visual Studio 2003 的所有重大更改,本文中的术语“新行为”或“现在”指的是到 Visual Studio 2015 及更高版本。术语“旧行为”和“之前”指的是 Visual Studio 2013 和更早版本:
本文介绍了 Visual C++ 中的 C++11/14/17 功能:
下表显示了编译器对新 C++ 功能的支持:
以下是我找到的其他一些引用资料:
- Major Changes in Visual C++4.1 and 4.2
- Major Changes in Visual C++ 5.0
- Major Changes in Visual C++ 6.0
- C++11/14 Core Language Features in VS 2013
- C++11/14 Feature Tables For Visual Studio 14
- C++11/14/17 Features In VS 2015 Preview
- C++17 Progress in VS 2017 15.5 and 15.6
此链接总结了 ISO C++03、C++11、C++14、C++17 和 Draft C++20 语言标准的编译器功能和 C++ 编译器在 Visual 中的标准库功能的一致性Studio 2017 及更早版本:
这里是关于使用Internal Version Numbering的信息MSVC 的:
The predefined macro _MSC_VER indicates the major and minor version numbers of the Visual C++ compiler. The macro's value is an integer literal in which the last two digits indicate the minor version number and the preceding digits indicate the major version number.
From Visual Studio 2017, _MSC_VER is incremented monotonically at every Visual C++ toolset update. Thus, for example, the version of MSVC++ 14.1 that ships with Visual Studio 2017 version 15.3.0 sets _MSC_VER to 1911. Microsoft recommends using the >= operator to test the value of _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)
关于c - 具有相应版本的 MSVC 功能列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49927559/