C++ Team Blog

C++ tutorials, C and C++ news, and information about Visual Studio, Visual Studio Code, and Vcpkg from the Microsoft C++ team.

Blizzard Diablo IV debugs Linux core dumps from Visual Studio
Blizzard Diablo IV debugs Linux core dumps from Visual Studio
Blizzard is using Visual Studio 2019 to debug Linux core dumps on WSL. The following blog post is written by Bill Randolph, a Senior Software Engineer at Blizzard working on the development of Diablo IV. Thanks for your partnership, Bill! Introduction On Diablo IV we develop all our code on Windows and compile for multiple platforms.  ...
A Year of Conference Talks from the Microsoft C++ Team
A Year of Conference Talks from the Microsoft C++ Team
As we learned to adapt to virtual conferences last year we presented more than 20 talks on a wide range of topics. I've collected them all here so you can easily learn about the latest advances in our tooling as well as the cutting edge of C++ features. C++ Europe (February) WSLConf (March) Pure Virtual C++ (April...
Windows ARM64 support for CMake projects in Visual Studio
Windows ARM64 support for CMake projects in Visual Studio
In Visual Studio 2019 version 16.9 Preview 3 we added support for deploying CMake projects to a remote Windows machine and debugging them with the Visual Studio remote tools. CMake developers targeting ARM64 Windows can now cross-compile (with cl or clang-cl), deploy, and debug their projects directly from Visual Studio. You can download and ...
Build Throughput Series: More Efficient Template Metaprogramming
Build Throughput Series: More Efficient Template Metaprogramming
In the previous blog post I shared how template specialization and template instantiation are processed in the MSVC compiler. We will now look at some examples from real-world code bases to show some ways to reduce the number of them. Example 1 This example is extracted from our own MSVC compiler code base. The code tries to apply several ...
C++ with Visual Studio and WSL2
C++ with Visual Studio and WSL2
Our team released native support for C++ with the Windows Subsystem for Linux (WSL) in Visual Studio in 2019. “Native support” means that all commands are executed locally instead of over a SSH connection. Since then, WSL2 has been announced and we’ve received questions about our support for WSL2 in Visual Studio. The purpose of this ...
Build Throughput Series: Template Metaprogramming Fundamentals
Build Throughput Series: Template Metaprogramming Fundamentals
Template metaprogramming is popular and seen in many code bases. However, it often contributes to long compile times. When investigating build throughput improvement opportunities in large codebases, our finding is that more than one million template specializations and template instantiations is quite common and often provides optimization ...
Faster C++ Iteration Builds
Faster C++ Iteration Builds
We made improvements to C++ link time earlier in Visual Studio 2019, and we have more improvements to tell you about. As of version 16.7, we measure up to 5X improvement in some incremental linking and debugging scenarios and up to a 1.5X speedup in full linking. These represent some of the improvements The Coalition saw in their recent ...
Configure IntelliSense with CMake Toolchain Files in Visual Studio 2019 16.9 Preview 2
Configure IntelliSense with CMake Toolchain Files in Visual Studio 2019 16.9 Preview 2
Visual Studio can now configure IntelliSense in CMake projects based on the value of CMake variables set by CMake toolchain files. These improvements provide automatic IntelliSense configuration when a CMake toolchain file is used for configuration and build. For example, Visual Studio can now provide IntelliSense for CMake projects using an ...
Visual Studio Code C++ Extension: ARM and ARM64 support
Visual Studio Code C++ Extension: ARM and ARM64 support
The latest release of the Visual Studio Code C++ extension brings C++ IntelliSense and build support for Windows ARM64, Linux ARM and Linux ARM64 architectures. What’s more, you can download VS Code builds for ARM and ARM64 architectures, meaning you can officially use VS Code and the C++ extension on a Raspberry Pi, Chromebook, Surface Pro ...