C++ Team Blog

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

Doxygen and XML Doc Comment support
Doxygen and XML Doc Comment support
Whether you’re using Doxygen or XML Doc Comments, Visual Studio version 16.6 Preview 2 provides automatic comment stub generation as well as Quick Info, Parameter Help, and Member List tooltip support. Stub Generation By default, the stub generation is set to XML Doc Comments. The comment stub can be generated by typing a triple slash (///
IntelliSense Code Linter for C++
IntelliSense Code Linter for C++
Introducing the IntelliSense Code Linter for C++; a preview of "as-you-type" code analysis with fixups. Try it out today in Visual Studio 2019 16.6 Preview 2.
More Spectre Mitigations in MSVC
More Spectre Mitigations in MSVC
In a previous blog post, Microsoft described the Spectre mitigations available under /Qspectre. These mitigations, while not significantly impacting performance, do not protect against all possible speculative load attacks, described in industry research as Load Value Injection. We are now adding two new switches /Qspectre-load and /Qspectre-l
Analyze your builds programmatically with the C++ Build Insights SDK
Analyze your builds programmatically with the C++ Build Insights SDK
We're happy to announce today the release of the C++ Build Insights SDK, a framework that gives you access to MSVC build time information via C and C++ APIs. To accompany this release, we are making vcperf open source on GitHub. Because vcperf itself is built with the SDK, you can use it as a reference when developing your own tools. We’re e
The Performance Benefits of Final Classes
The Performance Benefits of Final Classes
The final specifier in C++ marks a class or virtual member function as one which cannot be derived from or overriden. For example, consider the following code:  If we attempt to write a new class which derives from `derived` then we get a compiler error:  The final specifier is useful for expressing to readers of the code that a clas
AVX-512 Auto-Vectorization in MSVC
AVX-512 Auto-Vectorization in MSVC
In Visual Studio 2019 version 16.3 we added AVX-512 support to the auto-vectorizer of the MSVC compiler. This post will show some examples and help you enable it in your projects. What is the auto vectorizer? The compiler’s auto vectorizer analyzes loops in the user’s source code and generates vectorized code for a vectorization target w
Custom AI-Assisted IntelliSense for your team
Custom AI-Assisted IntelliSense for your team
As you’ve been editing code, you may have noticed IntelliCode’s starred recommendations in your autocompletion lists. Our previous IntelliCode blog post explains that these smarter suggestions were machine-learned over thousands of open sourced GitHub repos. Using community knowledge is great for public APIs like the Standard Librar
Qt to support Visual Studio Linux projects
Qt to support Visual Studio Linux projects
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 announced its plan to supp
Visual Studio Code CMake Tools Extension: Multi-root workspaces and file-based API
Visual Studio Code CMake Tools Extension: Multi-root workspaces and file-based API
The February 2020 update of the Visual Studio Code CMake Tools extension is now available. This release includes two of the extension’s top feature requests: file-based API support and multi-root workspaces. For a full list of this release’s improvements check out the release notes on GitHub. Multi-root workspace support The latest relea