How to Use Class Template Argument Deduction
Class Template Argument Deduction (CTAD) is a C++17 Core Language feature that reduces code verbosity. C++17’s Standard Library also supports CTAD, so after upgrading your toolset, you can take...
View ArticleStandard Library Algorithms: Changes and Additions in C++17
Today we have a guest post from Marc Gregoire, Software Architect at Nikon Metrology and Microsoft MVP since 2007. The C++14 standard already contains a wealth of different kinds of algorithms. C++17...
View ArticleExploring Clang Tooling Part 1: Extending Clang-Tidy
This post is part of a regular series of posts where the C++ product team and other guests answer questions we have received from customers. The questions can be about anything C++ related: MSVC...
View ArticleExploring Clang Tooling Part 2: Examining the Clang AST with clang-query
This post is part of a regular series of posts where the C++ product team and other guests answer questions we have received from customers. The questions can be about anything C++ related: MSVC...
View ArticleExploring Clang Tooling Part 3: Rewriting Code with clang-tidy
In the previous post in this series, we used clang-query to examine the Abstract Syntax Tree of a simple source code file. Using clang-query, we can prototype an AST Matcher which we can use in a...
View ArticleUse the official range-v3 with MSVC 2017 version 15.9
We’re happy to announce that the ongoing conformance work in the MSVC compiler has reached a new milestone: support for Eric Niebler’s range-v3 library. It’s no longer necessary to use the...
View ArticleQ&A: Fine-grained friendship
This post is part of a regular series of posts where the C++ product team here at Microsoft answers questions we have received from customers. The questions can be about anything C++ related: Visual...
View ArticleUsing Visual Studio for Cross Platform C++ Development Targeting Windows and...
A great strength of C++ is the ability to target multiple platforms without sacrificing performance. If you are using the same codebase for multiple targets, then CMake is the most common solution for...
View ArticleExploring Clang Tooling – Using Build Tools with clang-tidy
This post is part of a regular series of posts where the C++ product team and other guests answer questions we have received from customers. The questions can be about anything C++ related: MSVC...
View ArticleBetter template support and error detection in C++ Modules with MSVC 2017...
Overview It has been a long time since we last talked about C++ Modules. We feel it is time to revisit what has been happening under the hood of MSVC for modules. The Visual C++ Team has been dedicated...
View ArticleAnnouncing Live Share for C++: Real-Time Sharing and Collaboration
C++ developers using Visual Studio 2019 16.0 Preview 1 or Visual Studio Code can now use Live Share. With Live Share you can share the full context of your code, enabling collaborative editing and...
View ArticleAI-Assisted Code Completion Suggestions Come to C++ via IntelliCode
After reading and writing enough code, you begin to notice certain usage patterns. For example, if a stream is open, it will eventually be closed. More interestingly, if a string is used in the context...
View ArticleVisual Studio Code C++ extension: October 2018 update and a simplified...
The October 2018 update of the Visual Studio Code C++ extension has recently shipped. It comes with a ton of bug fixes, improved Go to Definition support, integrated terminal support when debugging,...
View ArticleGuaranteed Copy Elision Does Not Elide Copies
This post is also available on Simon Brand’s blog C++17 merged in a paper called Guaranteed copy elision through simplified value categories. The changes mandate that no copies or moves take place in...
View ArticleUsing multi-stage containers for C++ development
Containers are a great tool for configuring reproducible build environments. It’s fairly easy to find Dockerfiles that provide various C++ environments. Unfortunately, it is hard to find guidance on...
View ArticleNew Start Window and New Project Dialog Experience in Visual Studio 2019
Two features available in Visual Studio 2019 Preview 1 for C++ developers are the start window and a revamped new project dialog. The main goal of the start window is to make it easier to get to a...
View ArticleOut-of-Process Debugger for C++ in Visual Studio 2019
Visual Studio 2019 Preview 1 introduces an improved debugger for C++ that uses an external 64-bit process for hosting its memory-intensive components. If you’ve experienced memory-related issues while...
View ArticleLifetime Profile Update in Visual Studio 2019 Preview 2
Lifetime Profile Update in Visual Studio 2019 Preview 2 The C++ Core Guidelines’ Lifetime Profile, which is part of the C++ Core Guidelines, aims to detect lifetime problems, like dangling pointers and...
View ArticleMSVC Backend Updates in Visual Studio 2019 Preview 2: New Optimizations,...
In Visual Studio 2019 Preview 2 we have continued to improve the C++ backend with new features, new and improved optimizations, build throughput improvements, and quality of life changes. New Features...
View ArticleTemplate IntelliSense Improvements for Visual Studio 2019 Preview 2
In the first version of Template IntelliSense, we introduced the Template Bar which allowed you to provide sample arguments for your template in order to get a richer IntelliSense experience within the...
View Article