Posts by this author

Jun 5, 2024
4
0

Integrating C++ header units into Office using MSVC (3/n)

Overview Introduction In our previous two (part 1, part 2) blog posts we discussed how Office was thinking holistically about header units. In this installment we’d like to share the concrete steps taken to integrate header units into the build of Microsoft Word, and their effect on build throughput. Throughout ...

C++General C++ Seriesperformance
Sep 11, 2023
6
2

Integrating C++ header units into Office using MSVC (2/n)

In this follow-up blog, we will explore progress made towards getting header units working in the Office codebase. Overview Overview Last time we talked about how and why header units can be integrated into a large cross-platform codebase like Office. We discussed how header units helped surface conformance ...

C++General C++ Series
Dec 13, 2022
0
3

Improving the State of Debug Performance in C++

In this blog we will explore one change the MSVC compiler has implemented in an effort to improve the codegen quality of applications in debug mode. We will highlight what the change does, and how it could be extended for the future. If debug performance is something you care about for your C++ projects, then Visual Studio 2022 version 17.5 is ...

AnnouncementC++New Feature
Sep 12, 2022
5
9

Integrating C++ header units into Office using MSVC (1/n)

.cameron { color: #4472c4; } C++20 has had a lot to offer and one feature in particular requires the most thought of all when integrating into our projects: C++ modules (or C++ header units in this particular case). In this blog we will show a real world case of integrating a new C++20 feature into a large codebase that we might all...

C++General C++ Series
Jan 13, 2022
2
0

How we used C++20 to eliminate an entire class of runtime bugs

C++20 is here and has been supported in MSVC since 16.11, but today's post is not about how you can use it, but rather how we used it to effectively eliminate an entire class of runtime bugs by hoisting a check into compile-time. Let's get right into it! Humble beginnings In compiler design one of the very first things you need is a way to convey...

C++
Aug 10, 2021
19
2

Moving a project to C++ named Modules

There is a lot of hype (and perhaps restraint) to using modules in projects. The general blocker tends to be build support, but even with good build support there is a distinct lack of useful resources for practices around moving projects to using named modules (not just header units). In this blog we will take a small project I created, analyze ...

C++General C++ Series
Jul 21, 2021
3
0

Using C++ Modules in MSVC from the Command Line Part 1: Primary Module Interfaces

In this three-part series we will explore how to build modules and header units from the command line as well as how to use/reference them. The goal of this post is to serve as a brief tour of compiling and using primary module interfaces from the command line and the options we use. Note: This tutorial will focus primarily on dealing with ...

C++
Sep 14, 2020
37
0

Standard C++20 Modules support with MSVC in Visual Studio 2019 version 16.8

Please see our Visual Studio 2019 version 16.8 Preview 3 release notes for more of our latest features. It has been some time since our last update regarding C++ Modules conformance. The toolset, project system, and IDE teams have been hard at work to create a first class C++ Modules experience in Visual Studio 2019. There is a lot to share, so ...

C++Announcement
Aug 13, 2020
11
0

Introducing source dependency reporting with MSVC in Visual Studio 2019 version 16.7

C++20 demands a lot more from the ecosystem than ever before. With C++20 Modules on the horizon the compiler needs to work closely with project systems in order to provide rich information for build dependency gathering and making iterative builds faster for inner-loop development. The compiler and project teams have acknowledged the new ...

C++Announcement
Jan 22, 2020
12
0

C++ Modules conformance improvements with MSVC in Visual Studio 2019 16.5

C++20 is right around the corner. Along with the new standard comes the much anticipated Modules feature! The compiler team initially announced that we were working on the Modules TS back in 2017 and since then we have been hard at work improving the feature and improving compiler conformance around this feature. We finally feel it is time to share...

Announcement