C++ Team Blog
The latest in C++, Visual Studio, VS Code, and vcpkg from the MSFT C++ team
Latest posts
The Coalition Sees 27.9X Iteration Build Improvement with Visual Studio 2019
Visual Studio 2019 v16.8 Preview 3.2 introduces significant build and link time improvements. In this blog post, we detail how the team in The Coalition building Gears 5 tested the compile and link times in three different versions of Visual Studio.
A Tour of C++ Modules in Visual Studio
C++ module support has arrived in Visual Studio! Grab the latest Visual Studio Preview if you want to try it out. C++ modules can help you compartmentalize your code, speed up build times, and they work seamlessly, side-by-side with your existing code. This preview only supports C++ modules in the IDE for MSBuild projects. While the MSVC toolset is supported by any build system, Visual Studio’s IDE support for CMake doesn’t support C++ modules yet. We will let you know once it is! As always, please try it out and let us know if you have any feedback. Module Basics C++ modules allow you to closely control wha...
Even More New Safety Rules in C++ Code Analysis
In Visual Studio version 16.8 Preview 3, we have added a few safety rules to C++ Code Analysis that can find some common mistakes, which can lead to bugs ranging from simple broken features to costly security vulnerabilities. These new rules are developed around issues discovered in production software via security reviews and incidents requiring costly servicing. Every shipping piece of software in Microsoft runs these rules as part of security and compliance requirements. The first part of this blog series, New Safety Rules in C++ Code Analysis, introduced new rules related to the misuse of and its siblin...
Typelib and ActiveX now supported in MFC Wizards
We are happy to announce that the Typelib and ActiveX Wizards are now available in Visual Studio 2019. We’ve been working on rewriting all the wizards in Visual Studio to make them more accessible. These two wizards were not initially part of our rewriting plans and they were marked as deprecated in Visual Studio 2017 and missing in Visual Studio 2019. During this time, we listened to your feedback in an ongoing survey linked from the deprecation message. We want to thank everyone that took the time to share with us the types of projects they're working on and what role these wizards have in their workfl...
C++20 STL Features: 1 Year of Development on GitHub
My CppCon 2020 talk, “C++20 STL Features: 1 Year of Development on GitHub”, is now available on YouTube. The slides are available on GitHub as PDF and original PPTX. The talk contains complete examples (not snippets!) of several C++20 features: integer comparison functions, constexpr algorithms, uniform container erasure, atomic_ref, and span. Here are the important links from the end of the talk: Finally, at the end of the talk I had time to answer a half-dozen questions, but there were many more. Here are those extra questions and my answers: Q: Why do you squash pull reque...
Introducing the new Azure SDK for C++ Beta
The Azure SDK team is pleased to announce their first beta release of the new Azure SDK for C++. Unlike the previous Azure Storage specific SDK, the new Azure SDK for C++ is idiomatic to the C++ language and ensures consistency in behavior and API surface when communicating with multiple Azure services. This initial beta supports Azure Blob Storage, File Shares, and Data Lake; support for Azure KeyVault Keys is coming soon. The Azure SDK for C++: Please read the "Introducing the new Azure SDK for C++" blog post for more information.
Faster C++ builds, simplified: a new metric for time
C++ Build Insights is a collection of tools and APIs that can help you gain a deeper understanding of your build times. Today, we’d like to teach you about a special metric offered in this toolkit: the wall clock time responsibility (WCTR). It can be used to estimate how much time is really spent by each activity in your build, even in the presence of parallelism. We first describe how to access this metric with vcperf. Then, we delve into a real-world case study of using the metric to guide the creation of a pre-compiled header (PCH) for the CopperSpice open source project. We hope you will find uses for WCTR in...
Build and debug Qt projects on Linux with Qt Visual Studio Tools
Qt is a popular cross-platform framework for application development and user interface design. Its various libraries and toolsets can be used to create, test, and deploy applications that target multiple platforms and operating systems including Linux, Windows, macOS and embedded/microcontroller systems. Qt recently released a new version of the Qt Visual Studio Tools extension that integrates with Visual Studio’s Linux development with C++ workload. This extension allows you to build and debug MSBuild-based Qt projects on both Windows and Linux directly from Visual Studio. To illustrate this integration, Qt ...
C++ Core Check in Visual Studio
C++ Core Check is Microsoft’s static analysis tool that enforces the rules from the C++ Core Guidelines, which is maintained by the C++ Foundation. This post is to provide a snapshot of the C++ Core Guidelines coverage that C++ Core Check offers. For background, the C++ team introduced C++ Core Check in December 2015 as part of Visual Studio 2015 Update 1. At the time of its release, C++ Core Check offered rules from the Bounds profile and Type profile with the promise of the Lifetimes profile to follow. The C++ team has been expanding C++ Core Check's coverage over the last five years. We have added more r...