Cameron DaCamara

Senior Software Engineer, Visual C++

Senior Engineer, Visual C++ compiler front-end team at Microsoft.

Post by this author

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 ...

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...

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 ...

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 ...

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, ...

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 ...

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...

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++ 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 ...

Simplify Your Code With Rocket Science: C++20’s Spaceship Operator

This post is part of a regular series of posts where the C++ product team here at Microsoft and other guests answer questions we have received from customers. The questions can be about anything C++ related: MSVC toolset, the standard language and library, the C++ standards committee, isocpp.org, CppCon, etc. Today's post is by Cameron ...