各个版本的 MSVC 功能列表?

2024-01-22

我正在尝试找到一个列表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(使用前将#替换为@)

各个版本的 MSVC 功能列表? 的相关文章

  • UTF8/UTF16 和 Base64 在编码方面有什么区别

    In c 我们可以使用下面的类来进行编码 System Text Encoding UTF8 System Text Encoding UTF16 System Text Encoding ASCII 为什么没有System Text En
  • 如何在 Unity 中从 RenderTexture 访问原始数据

    问题的简短版本 我正在尝试访问 Unity 中 RenderTexture 的内容 我一直在使用 Graphics Blit 使用自己的材质进行绘制 Graphics Blit null renderTexture material 我的材
  • 模板类的不明确多重继承

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • 在 URL 中发送之前对特殊字符进行百分比编码

    我需要传递特殊字符 如 等 Facebook Twitter 和此类社交网站的 URL 为此 我将这些字符替换为 URL 转义码 return valToEncode Replace 21 Replace 23 Replace 24 Rep
  • 将日期参数传递给对 MVC 操作的 ajax 调用的安全方法

    我有一个 MVC 操作 它的参数之一是DateTime如果我通过 17 07 2012 它会抛出一个异常 指出参数为空但不能有空值 但如果我通过01 07 2012它被解析为Jan 07 2012 我将日期传递给 ajax 调用DD MM
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • PHP file_get_contents 与 php 完好无损吗?

    与使用 include 不同 include 执行文件中包含的 php 是否可以将 php 文件的内容保存到变量中 但 php 仍然完整且可执行 我的目标看起来像这样 template some imaginary include func
  • 如何获得从1到N随机排序的数字数组?

    下面的代码生成一个数组N整数随机数并将结果存储在random int array N 20 allocate array N 2 call random seed call random number array random int ar
  • 响应UIWebView点击动作调用原生代码页面

    我正在寻找一种方法来监听 UIWebView 中的操作 例如 当我点击 UIWebView 内的链接或按钮时 我想调用一个新的本机组件 例如评论页面 或者 采取其他一些操作 例如更改导航栏项目 是的 你可以这样做 实施 webView sh
  • 使 ParallelEnumerable.OrderBy 稳定排序

    我正在使用对象的整数 id 并行对对象列表进行排序OrderBy 我有一些具有相同 id 的对象 并且需要排序保持稳定 根据微软的文档 https learn microsoft com en us dotnet api system li
  • 编译时不断出现java: invalid source release: 1.9错误

    我尝试使用该网站上的各个论坛来解决此问题 但没有任何帮助 我尝试了与修复其他人的 1 8 错误类似的技术 但没有任何效果 我的源文件夹下有我的 java 类文件 没有导入 我只是想要一个基本的输出消息来确保 intelliJ 正常工作 有人
  • 对象上的 Scala F 有界多态性

    我无法在 Scala 中编写以下 F 界多态性 为什么 trait X T lt X T object Y extends X Y 我该如何表达并使其编译 看来你确实应该能够写作 trait X T lt X T object Y exte
  • 抑制 django 天真的日期时间警告

    我关心涉及日期时间模块的脚本 我必须抑制 时区处于活动状态时对象收到一个简单的日期时间 因为脚本中还有其他打印语句 我的代码如下 script from datetime import datetime date datetime now
  • gcc/diab:保留未使用的函数/部分

    我有一个项目 我想在链接阶段保留某些功能 部分 I tried static void stub enforcer void attribute used 但这是针对编译器的 而不是针对链接器的 现在链接器负责并使用了 gc section
  • C/C++、FORTRAN、下划线和 GNU Autotools

    我有关于混合语言编程 C C 和 FORTRAN 的问题 使用 gcc 和 gfortran 我搜索了很多 将 fortran 与 语言 X 并且无法解决这个问题 我不确定这是链接问题还是编译器问题 或者两者兼而有之 我创建了三个文件 并使
  • 添加包含 NA 计数和平均值的列

    我有一个数据框 我需要向其中添加另一列 该列显示该行所有其他列中 NA 的计数以及非 NA 值的平均值 我认为这可以在 dplyr 中完成 gt df1 lt data frame a 1 5 b c 1 2 NA 4 NA c c NA
  • Symfony 2 嵌入式表单集合多对多

    我有 2 个实体 用户和组 它们具有多对多的关系 组用于存储用户的角色 我正在尝试通过添加集合来创建用户编辑表单 我希望能够通过从下拉列表中选择它来添加新角色 仅限于数据库中已有的内容 用户类型 php class UserType ext
  • 将 Vector 的第一个元素移动到最后一个元素

    我想将向量的第一个元素移动到向量的末尾 v 1 2 3 4 之后应该是这样的 v 2 3 4 1 我的编译器版本是gcc版本4 4 3 Ubuntu 4 4 3 4ubuntu5 1 我知道在 Vc11 中我们可以使用 std move 来
  • 使用批处理脚本重命名目录中的多个文件

    我有大约 1000 张图像 它们的名称如 IMG 12223 我想将它们重命名为 1 2 3 4 1000 我该怎么做 我编写了一个列出文件的批处理脚本 但我不知道如何重命名每个文件 例如将名称为 IMG 12223 的第一张图像重命名为
  • Rust 的方式是什么,可以用继承来捕获草书事件? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我在这里寻找一个实用的答案 我了解 Rust 的 OOP 方法 组合优于继承 编写重用代码的特征以及所有这些爵士乐 如果我能够完全控制代码并
  • EF代码优先级联删除外键一对多

    我们正在使用实体框架代码优先 我们有一个课堂视频 class Video List
  • 乘客 config.ru 权限被拒绝

    有人在rails nginx passenger的组合下经历过ERR EMPTY RESPONSE吗 nginx error log 说 terminate called after throwing an instance of Pass
  • Android:如何模拟后退按钮

    目前我的活动允许用户填写某些数据 包括微调器等 当用户单击下一个系统时 系统导航到另一个屏幕 当我按下手机上的后退按钮时 之前加载和填充的数据即可使用 我的要求要求我在用户界面中提供一个软 后退 按钮 当用户单击它时 它会导航回上一屏幕 但
  • QEventLoop正确使用

    我有疑问应该如何使用QEventLoop 我有两段代码 它们都适合我 下载网络资源 第一 QNetworkAccessManager manager new QNetworkAccessManager this QNetworkReques
  • GWT 将脚本元素注入 html 文件

    在我的 gwt 项目上 我有一个调用字典的脚本 而不是将此脚本元素写入 html 文件中 我想在模块加载时将其从入口点注入到 html 中 我该怎么做 Use com google gwt core client ScriptInjecto
  • 各个版本的 MSVC 功能列表?

    我正在尝试找到一个列表MSVC具有它们出现的相应版本的功能 因此我可以执行以下操作 if defined MSC VER MSC VER gt X define MY INLINE forceinline else define MY IN