Visual Studio 2017 15.6 Preview 2 中的C++核心准则检查

[原文发表地址]:C++ Core Check in Visual Studio 2017 15.6 Preview 2

[原文发表时间]:2018年1月18日

[作者]:Andrew Pardoe [MSFT]

这篇文章是由Sergiy Oryekhov写的。

请注意,docs.microsoft.com的某些链接尚未解决。 并非所有的官方文档都是为这个主题撰写的。

Visual Studio 2017 15.6 Preview 2包含一组对C++ 核心准则检查扩展的更新。 我们添加了更多检查来帮助您完成代码更清洁,更安全和可维护的工作。 本文档是对新规则的简要概述。 有关这些规则的更多详细信息以及可用规则的更新列表可以在此处找到:

  • Visual Studio 2017 15.6预览2中的C ++ 核心检测:整数溢出规则
  • Visual Studio 2017 15.6预览2中的C ++ 核心检测:生命周期规则
  • C ++核心准则检查参考

本版本还对本地代码分析工具的用户体验进行了总体改进:Visual Studio 2017 15.6 预览 2的C ++静态分析改进

新的规则集

本版本中引入了两个新的规则类别,其中可以在项目配置中选择相应的规则集文件以过滤静态分析结果:

  • 算术规则

这些规则专注于算术运算可能导致数据丢失,未定义行为或溢出的情况。

  • 生命周期规则

这套规则以前以实验性C ++核心检查的形式发布(目前仍然可用)。 对于15.6,它被完全重写,并且它的第一个版本已准备好进行评估。 主要焦点是捕获非常危险的情况,在这种情况下,代码访问由于其内容的生命周期结束而不再有效的内存位置(例如,局部变量不在范围内并被销毁)。

新规则

最后

好的工具可以帮助您维护和升级您的代码。 C ++核心准则是一个很好的开始,C ++核心准则检查器可以帮助您清理代码并保持清洁。 尝试Visual Studio 2017 15.6版中扩展的C ++核心指南检查器,并让我们知道您的想法。

如果您对我们有任何意见或建议,请告诉我们。 我们可以通过以下评论,通过电子邮件(visualcpp@microsoft.com)与您联系,您可以通过产品中的帮助>报告问题或通过开发者社区提供反馈。 您还可以在Twitter(@VisualC)和Facebook(msftvisualcpp)上找到我们。