Visual Studio 2017 提高 C++ 核心检查

[原文发表地址]: C++ Core Check improvements in Visual Studio 2017 15.5 [原文发表时间]: 2017年11月15日,[作者]: Sergiy OryeKhov  对于本机代码静态分析工具,我们已经在Visual Studio 2017 15.5 预览版 4上进行了C++ 核心准则检查 扩展。自从15.3 以来大部分工作都集中在新的规则,这将帮助开发者开始编写安全的C++新项目,而那些使用旧版开发的项目可以被移去更安全的现代C++。对于刚开始使用核心准则的人,我们建议您去查看工作草案的最新版本:“C++ 核心准则检查”。 这篇文章是关于在VS2017 15.5 上改变的概述。有关当前发布版的更多信息,请参阅docs.microsoft.com 上受支持的规则集列表。          注意docs.microsoft.com上的一些链接还尚未解决。不是所有的官方的文档都是为这个话题编写的。 新的规则集          在之前的发布版本中我们引入几个新的规则集以允许客户可以缩减代码分析结果。对15.5 这个规则的实施扩展了一些已经存在的规则集(原始指针,所有者指针,唯一指针,类型),也引入了一些新的类目: 类规则:本节包含了一些主要关注使用特殊方法和虚拟规范的规则。这是一个为类和类层次检查建议的一个子集。 并行规则:这当前包含一个单一的规则,可以捕获严重的声明守卫对象。更多的信息请参照 C++ 核心准则中相关的并行规则。 声明规则:这是一组来自接口准则的规则,这关注的是如何声明一个全局的变量。 函数规则:这两个检查有助于采用noexpect 说明符。这是清晰的功能设计和执行准则的一部分。 共享指针规则:作为资源管理准则执行的一部分,我们添加了一些特定的用于如何将共享指针传递到函数或者本地使用的规则。 风格规则:在这次发布中我们有一个简单但是很重要的检查就是禁止使用goto。这是在C++中提高代码风格和表达式与语句使用的第一步。尽管这是被期待的在C++ 核心准则下的goto语句,正确使用这个结构是罕见的,他值得去审查。 每一套新规则 类规则 C26432 DEFINE_OR_DELETE_SPECIAL_OPS 特殊的操作(例如:析构函数和拷贝构造函数)意味着特殊的行为,并且应该全套的定义这种行为。 C26436 NEED_VIRTUAL_DTOR 虚拟方法有一种多态的行为,这需要对对行清理进行更细致的管理。 C26434 DONT_HIDE_METHODS通过名称隐藏方法就像隐藏变量一样。名称不应该出现歧义。 并行规则 C26441…

0

Visual Studio构建工具现在包括VS2017和VS2015 MSVC工具集

[原文发表地址] Visual Studio Build Tools now include the VS2017 and VS2015 MSVC Toolsets [原文发表时间] 2017/11/01 从两年前我们推出 Visual C ++ 构建工具以来,它已经取得了巨大的成功。 C ++构建工具最初是作为一个独立的安装程序发布的,在不安装Visual Studio IDE的情况下,只安装了构建C ++项目所需的工具。 许多开发人员发现它们在不需要完全VS安装的环境中很有用(如构建服务器或CI系统)。 这些工具始终保持最新状态,仅提供最新支持的MSVC编译器工具集版本。 使用Visual Studio 2017的全新灵活的安装程序,我们能够移除我们定制的C ++ 构建工具设置来使用新的VS 2017安装体验。 正如我们在VS2015中所做的那样,我们更新了Build Tools中的MSVC编译器工具集以匹配VS 2017 v141编译器工具集。 Visual Studio构建工具中的MSVC编译器工具集目前具有VS2017 15.3版本中的所有C ++ 17功能和STL修补程序。 当我们发布预览版本的VS2017 15.5版时,我们将再次更新Visual Studio Build Tools中的MSVC编译器工具集。  您可以立即从visualstudio.com下载Visual Studio构建工具。 构建工具被许可作为您现有的Visual Studio许可证的补充,因此没有额外的成本将它们集成到您的工作流程中。 安装VS2015 MSVC v140工具集 你们很多人都告诉我们,你们仍然需要Visual…

0

Visual Studio 支持CMake–导入你的CMake Cache

[原文发表地址] CMake Support in Visual Studio – Import Your CMake Cache [原文发表时间] 2017/11/01 配置一个CMake项目,然后用你想要的方式来创建往往是一个耗时的过程,因此在Visual Studio 2017 15.5 preview中我们是这个过程比以往更加地容易,现在你可以把现有的CMake项目和缓存配置导入到IDE中。现在你可以导入一个现有的CMakeCache.txt文件,Visual Studio也会自动地提取自定义变量并给予它们创建一个预先生成的CMakeSettings.json文件。 请检查预览版本并试用最新的CMake功能。如果你才刚开始接触CMake,请先查阅这篇博客CMake support in Visual Studio。我们期待你的反馈。 导入一个CMake项目 现在我们填加了一个新的入口选项来打开CMake文件:文件->打开->CMake。通过这种方式你可以直接打开一个CMake项目(通过选择一个CMakeLists.txt文件)或是导入一个CMake Cache(通过选择一个CMakeCache.txt文件): 导航到CMakeCache.txt文件的激活导入向导页面: 当你导入了一个CMake Cache,我们会把原始的缓存保持原样。因此,该缓存应该从命令行或使用任何工具或IDE来生成它。 Visual Studio提取了用于创建缓存的命令行参数(如CMake变量)并将其存储在项目的根路径CMakeLists.txt边上的CMakeSettings.json文件中。然后,这个文件可以用来生成一个新的缓存,Visual Studio将使用这个新缓存来创建项目。 请记住,并非缓存中的所有内容都将被导入。诸如生成器和编译器位置之类的属性被替换为已知可用于IDE的默认值。 你的反馈是确保我们提供最佳CMake体验的关键部分。我们很想知道Visual Studio 2017 15.5 preview如何为你工作。如果你有任何特定于CMake工具的反馈,请联系cmake@microsoft.com。对于普通的问题请填写反馈。

0

使用Visual C++和Open Folder自定义您的环境

[原文发表地址] Customizing your Environment with Visual C++ and Open Folder [原文发表时间] 2017/11/02 自从我们支持了打开C ++代码文件夹的功能之后,社区的客户一直希望有更多地可以控制构建和编辑环境的功能。为实现这些想法,我们在Visual Studio 2017的最新版本中增加了一些新的方法可以通过使用CppProperties.json来自定义您的环境。 这个新的自定义界面使您能够使用更广泛的工具,编写更简洁的CppProperties文件,并且具有与MSBuild类似的强大的单个配置的自定义。下面的主题展示了原始C++ Open Folder文章中描述的几个概念。如果您不熟悉编辑CppProperties.json,Launch.vs.json和Tasks.vs.json,可能需要先阅读该文章。 C++ Open Folder这篇文章与我们之前发布的为CMake项目自定义您的环境相匹配,所以如果您已经阅读过了,可能会发现其中有一些内容是相似的,因为我们努力保持经验一致。而最重要的区别在于“关于Launch.vs.json和Tasks.vs.json”如何使用特定于配置的变量。 CppProperties.json的新功能 这种新的灵活性的核心在于您的项目的CppProperties.json文件,它源于两个新的概念: 使用“inheritEnvironments”属性来继承单个配置或一组默认全局环境变量的能力。 通过定义“environments”块来定义单个配置或是自定义环境变量及其值的能力。 通过使用“$ {env.VAR}”语法将这些新概念与CppProperties.json,launch.vs.json和tasks.vs.json中现有的使用环境变量的能力相结合,为创建丰富的开发环境提供了强大的机制。 我们先来看看如何使用此功能的快速示例: 1{ 2 // The “environments” property is an array of key value pairs of the form 3 // { “EnvVar1”: “Value1”, “EnvVar2”: “Value2” } 4 “environments”:…

0