首页

VS2022官宣C++ 20标准库完整版本释出  

今天我们非常高兴地宣布,稳定版本的C++20标准库(STL)现已在VS2022 v17.2和VS2019 v16.11.14这两个版本可用。 特别是,这个版本包括了C++标准委员会批准的几项针对C++20标准库的缺陷报告 (DR) 提案,这些提案最近在 2021 年 10 月对 format 和 ranges 进行了大量的设计修改。 现在,你可以在生产环境中以二进制兼容的方式使用完整的C++20功...

新功能速递:Visual Studio Code中的C++调试  

距离我们上一篇关于VS Code中C++开发的博客文章已经过去了一阵子了,我们一直在努力开发新功能和对现有Bug进行修复,今天我很高兴地向大家介绍VS Code中最新的C++调试器改进,包括,对Apple M1芯片的支持,数据断点和新的运行/调试按钮。 对Apple M1的支持 去年,我们为Apple Silicon ARM64架构启用了语言服务器支持,这意味着你现在可以在 Apple M1 芯片...

Visual Studio 2022:新的枚举检查规则  

实际上,我们内部有一个C++静态分析团队,他们的主要目标是:让C++开发者尽可能地编写安全的代码。静态分析团队努力工作,持续地添加代码安全检查规则,并积极解决C++开发社区提交的各类高优先级问题。感谢各位开发者一直以来给我们提供的使用反馈和建议。今天的文章的内容,主要是概述了一些关于枚举使用相关的代码检查规则,这些规则会指出枚举的误用场景,并对现有的枚举检查做出了一些改进。 概述 我们引入了三项检...

使用吉特哈布Codespaces和Visual Studio Code进行C++开发  

关于缩写 为了避免行文太过膨胀,我可能会将如下全称以缩写代替,请注意。 VSC: Visual Studio Code 吉特哈布:猿友应该都懂,而且因为文章限制,我也打不出来。 好了,开始呗那就。 不管你是刚刚开始学习C++的新手,或者是一名C++开源代码贡献者,又或者是一名经验丰富的嵌入式开发者,通过将吉特哈布Codespaces和Visual Studio Code相结合,可以显著地降低开发和...

VS2022帮助游戏开发者提高生产力  

引言 自从Visual Studio 2022发布以来,我们一直在努力提升游戏开发者的生产力。在我上一次的Microsoft Game Dev谈话中,我分享了为什么Visual Studio是游戏开发者的终极开发IDE的观点。我也和Double Fine Productions的开发人员一起演示了他们最喜欢的功能特性(在开发Award-winning Psychonauts 2的时候)。 接下来,...

VisualStudio: 在CMake工程中使用C++模块  

自从我们宣布微软C++编译器和Visual Studio开始支持C++模块以来,我们已经看到了开发者社区的热烈反响。从那个时候开始,就已经有人问什么时候可以支持CMake工程。 今天,我很高兴地宣布,Visual Studio 2022 17.2 预览版2已经包含了一项实验性更新,用来在CMake工程中支持C++模块。在这个早期版本中,你必须使用Visual Studio(MSBuild)代码生成...

使用Visual Studio进行远程macOS C++开发  

最新预览版本的Visual Studio已经可以下载了。那些希望在macOS上开发C++的开发者有福了:在最新版本中,开发者可以使用Visual Studio的CMake inux工具来在Mac平台上做C++开发。虽然需要在Mac上做一些准备工作才能开启这项支持,但是设置好之后,就可以将Mac当做任何其他远程Linux开发平台了。 安装 请先安装最新预览版本的Visual Studio 2022...

编译器浏览器:现已支持代码执行和静态分析  

编译器浏览器(Compiler Explorer)是一个很流行的工具,它可以: > 用来对不同编译器的汇编输出进行可视化。 > 测试不同的编译器版本和不同的编译器开关。 > 更加方便地对那些流行的第三方代码库进行测试。 今天,我们很高兴地宣布:编译器浏览器现已支持用于MSVC编译器的代码执行和静态分析功能。值得说一下的是,代码执行这项特性是开发者社区呼声最高的需求之一,所以我们希...

编写现代C++代码:GSL 4.0.0 正式可用  

要搞明白什么是GSL,需要先清楚,什么是C++ Core Guidelines。 C++ Core Guidelines是一份简单的文档,里面描述了一组旨在编写现代C++代码的指导原则。这项工程由C++的原作者Bjarne Stroustrup发起并主导,主要聚焦在一些C++工程中出现的各种顶层设计问题,例如,接口设计,资源管理,内存管理和并发等。这些顶层设计会影响应用程序架构和库的设计。遵循这套...

如何使用C++20解决一系列运行时错误  

C++20已经发布了一阵子了,并已经被MSVC v16.11及以上版本所支持。今天的文章的主题,不是讲如何使用它,而是讲我们作为编译器开发人员,是如何借助C++20来有效地清除一些列运行时错误。不多啰嗦,直接上东西。 最初的做法 在设计编译器时,你需要考虑的第一件事就是需要提醒开发者他的代码是否有错误或者潜在的非预期行为。在MSVC编译器的实现中,我们采用了如下图所示的错误模型: 上图中的err...