C++ Team Blog
The latest in C++, Visual Studio, VS Code, and vcpkg from the MSFT C++ team
Latest posts
Now announcing: Makefile support in Visual Studio Code!
We are excited to announce a brand-new extension for building and debugging Makefile projects in Visual Studio Code: Makefile Tools (preview)! The extension is in pilot stages, but we’ve curated a list of over 70 popular opensource Makefile projects that work with Makefile Tools. Give it a try and let us know what you think! Installing the extension First, install the Makefile Tools extension from the VS Code Marketplace. Activating the extension Once the extension is installed, it will activate when it finds a Makefile in your project’s root folder. If your project’s Makefile is not in the root folde...
Visual Studio Code C++ Extension: Cross-Compilation IntelliSense Configurations
The February 2021 update of the Visual Studio Code C++ extension is now available! This latest release provides support for cross-compilation IntelliSense configurations and over 60 bug fixes! To find out more about all the enhancements, check out our release notes on GitHub. Cross-compilation IntelliSense configurations With this latest release, you can configure the extension to provide proper IntelliSense when compiling for a different platform than your host OS. That’s right— platform, not just architecture. The C++ extension no longer hardcodes system defines based on your host OS; it’ll use the system def...
Improved OpenMP Support for C++ in Visual Studio
In Visual Studio 2019 version 16.9 we shipped the first stage in our plan to support newer versions of the OpenMP standard in C++ under the -openmp:llvm flag. This flag currently enables several correctness fixes and the use of unsigned integers in parallel for loops.
Abbreviated Function Templates and Constrained Auto
Declaring function templates in C++ has always been quite verbose. C++20 added a new way of doing so that is more terse and more consistent with lambdas: abbreviated function templates. This short post will show how to use this syntax and how it applies to C++20 concepts. Abbreviated Function Templates C++11 introduced lambdas, which look like this: You can only call this lambdas with arguments of and . However we frequently use lambdas in situations where the types would be difficult to spell out in full (especially when using features like ranges). C++14 allowed you to make lambdas which can be called wit...
Playground Games and Turn 10 Studios See 18.2X and 4.95X Link Time Improvements Respectively on Visual Studio 2019
The C++ team at Visual Studio has delivered substantial compile and link time improvements throughout Visual Studio 2019. Playground Games and Turn 10 Studios shares their link time improvement wins.
Seamlessly Accelerate CMake Projects in Visual Studio with Incredibuild
Visual Studio 2017 shipped with first-class CMake support. Since then, we’ve continued to improve our CMake support by adding new features based on your feedback. We previously blogged about the built-in Incredibuild support for accelerating and visualizing your vcxproj projects, and many of you asked to get this same level of support for your CMake projects. We’re happy to announce that Incredibuild can now be used to accelerate the Windows builds of your CMake projects from within Visual Studio. Incredibuild Recap The backbone of Incredibuild’s offering, Virtualized Distributed Processing™ enables a workload ...
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. This includes our servers, which run on Linux. (The code includes conditional compilation and custom platform-specific code where necessary). There are multiple reasons for this workflow. For one, our team’s core competency is on Windows. Even our server programmers are ...
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) Microsoft Build (May) C++ on Sea (July) APAConf (August) CppCon (September) Meeting C++ (November) Let us know your thoughts We'd love to hear what you t...
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 install the latest preview of Visual Studio here. For step-by-step instructions of this workflow, check out the Tutorial: Debug a CMake project on a remote Windows machine. This tutorial is specific to ARM64 development, but the steps can be generalized for other Windows a...