我正在尝试找到一个列表MSVC
具有它们出现的相应版本的功能,因此我可以执行以下操作:
#if defined(_MSC_VER) && _MSC_VER > X
#define MY_INLINE __forceinline
#else
#define MY_INLINE inline
#endif
With gcc
例如,有一个列表所有属性的最低版本 https://ohse.de/uwe/articles/gcc-attributes.html。有类似的东西吗MSVC
?
本文描述了自视觉工作室 2015回到视觉工作室2003,本文中的术语“新行为”或“现在”是指 Visual Studio 2015 及更高版本。术语“旧行为”和“之前”是指 Visual Studio 2013 及更早版本:
- Visual C++ 变更历史 https://learn.microsoft.com/en-us/cpp/porting/visual-cpp-change-history-2003-2015
本文介绍 Visual C++ 中的 C++11/14/17 功能:
- C++ 2017 年 11 月 14 日功能 https://msdn.microsoft.com/en-us/library/hh567368.aspx
下表列出了编译器对新 C++ 功能的支持:
- C++ 编译器支持 http://en.cppreference.com/w/cpp/compiler_support
以下是我发现的其他一些参考资料:
- Visual C++4.1 和 4.2 中的主要变化 http://web.archive.org/web/20100228175137/http://msdn.microsoft.com/en-us/library/aa697418(VS.71).aspx
- Visual C++ 5.0 中的主要变化 https://www.microsoft.com/en-us/download/details.aspx?id=55979
- Visual C++ 6.0 中的主要变化 https://www.microsoft.com/en-us/download/details.aspx?id=55979
- VS 2013 中的 C++11/14 核心语言功能 https://blogs.msdn.microsoft.com/vcblog/2013/12/02/c1114-core-language-features-in-vs-2013-and-the-nov-2013-ctp/
- Visual Studio 14 的 C++11/14 功能表 https://blogs.msdn.microsoft.com/vcblog/2014/06/11/c1114-feature-tables-for-visual-studio-14-ctp1/
- VS 2015 预览中的 C++11/14/17 功能 https://blogs.msdn.microsoft.com/vcblog/2014/11/17/c111417-features-in-vs-2015-preview/
- C++17 VS 2017 15.5 和 15.6 的进展 https://blogs.msdn.microsoft.com/vcblog/2017/12/19/c17-progress-in-vs-2017-15-5-and-15-6/
此链接总结了 Visual Studio 2017 中 C++ 编译器的编译器功能和标准库功能的 ISO C++03、C++11、C++14、C++17 和草案 C++20 语言标准一致性早期版本:
- Visual C++ 语言一致性 https://learn.microsoft.com/en-us/cpp/visual-cpp-language-conformance
这是有关使用的信息内部版本编号 https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2BMSVC 的:
预定义宏_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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)