C++ Team Blog

The latest in C++, Visual Studio, VS Code, and vcpkg from the MSFT C++ team

Latest posts

Nov 7, 2019
Post comments count 8
Post likes count 0

Electronic Arts and Visual Studio’s Linux Support

Erika Sweet

Electronic Arts (EA) is using Visual Studio’s cross-platform support to cross-compile on Windows and debug on Linux. The following post is written by Ben May, a Senior Software Engineer of Engineering Workflows at EA. Thanks Ben and EA for your partnership, and for helping us make Visual Studio the best IDE for C++ cross-platform development. At EA our Frostbite Engine has a Linux component used for our dedicated servers that service many of our most popular games.  When we saw that Microsoft was adding support for Linux in a workload in Visual Studio, this caught my interest!  At EA our game developers are us...

Nov 5, 2019
Post comments count 33
Post likes count 2

Introducing C++ Build Insights

Kevin Cadieux

C++ builds should always be faster. In Visual Studio 2019 16.2, we’ve shown our commitment to this ideal by speeding up the linker significantly. Today, we are thrilled to announce a new collection of tools that will give you the power to make improvements of your own. If you've ever had time for breakfast while building C++, then you may have asked yourself: what is the compiler doing? C++ Build Insights is our latest take at answering this daunting question and many others. By combining new tools with tried-and-tested Event Tracing for Windows (ETW), we’re making timing information for our C++ toolchain more ac...

Nov 4, 2019
Post comments count 5
Post likes count 0

Visual Studio Code C++ extension: Nov 2019 update

Marian Luparu

Find All References, Rename Symbol refactoring, support for localization, new navigation breadcrumb controls, and improvements to the Outline view are only a few of the improvements in the November 2019 update of Visual Studio Code C++ extension.

Nov 1, 2019
Post comments count 28
Post likes count 0

An Update on C++/CLI and .NET Core

Will Buik

The first public release of our C++/CLI support for .NET Core 3.1 is now available for public preview! It is included in Visual Studio 2019 update 16.4 Preview 2. We would love it if you could try it out and send us any feedback you have. For more info about what this is and the roadmap going forward, check out my last post on the future of C++/CLI and .NET Core. To get started make sure you have all the necessary components installed. C++/CLI support for desktop development is an optional component, so you will need to select it on the installer’s right pane: You will also need the .NET Core cross-plat...

Oct 30, 2019
Post comments count 4
Post likes count 0

Microsoft C++ Team At CppCon 2019: Videos Available

Sy Brand

Last month a large contingent from the Microsoft C++ team attended CppCon. We gave fourteen presentations covering our tools, developments in the standard, concepts which underlie the work we do, and more. We also recorded an episode of CppCast with Microsoft MVPs Rob Irving and Jason Turner. You can hear more about the Open Sourcing of MSVC's STL, the upcoming ASAN support in Visual Studio and our team's effort in achieving C++17 standards conformance. All our CppCon videos are available now, so please give them a watch and let us know what you think! ...

Oct 23, 2019
Post comments count 62
Post likes count 1

AddressSanitizer (ASan) for Windows with MSVC

Augustin Popa

⌚ This post was last updated on March 24th, 2021 with the latest information on ASan support. Note: This feature is now generally available. To get started, take a look at the official AddressSanitizer for Windows with MSVC documentation. Many experience improvements have been made since this blog post was published, and our docs have the latest information.   We are pleased to announce AddressSanitizer (ASan) support for the MSVC toolset. ASan is a fast memory error detector that can find runtime memory issues such as use-after-free and perform out of bounds checks. Support for sanitizers has been ...

Oct 15, 2019
Post comments count 4
Post likes count 0

Usability Improvements for CMake in Visual Studio 2019 version 16.4: Launch Target Selection and Overview Pages

Erika Sweet

We hear your feedback, and in Visual Studio 2019 version 16.4 Preview 2 we have addressed one of our top Developer Community issues related to CMake development in Visual Studio by revamping the selection of CMake launch targets. We have also added Overview Pages for CMake to help you get started with CMake and cross-platform development. If you’re not familiar with Visual Studio's CMake support, be sure to check our CMake Support in Visual Studio introductory page. Launch Target Selection In Visual Studio 2019 you can select a CMake target to run via the launch drop-down menu: With Visual Studio 2019 ve...

Oct 8, 2019
Post comments count 13
Post likes count 1

Code analysis with clang-tidy in Visual Studio

eli fessler

[Updated on 11/6/2019] - Removed "Setup: Installing Clang tools" section; this is no longer required starting in Visual Studio 2019 version 16.4 Preview 3. Visual Studio 2019 version 16.4 Preview 1 brings a significant improvement to the C++ code analysis experience: native support for clang-tidy, a Clang-based “linter” tool developed by the LLVM Project that delivers a variety of code improvements such as modernization and standards conformance, static analysis, and automatic formatting. For more information about using Clang/LLVM as a compiler in your project, see our past blog posts on Clang/LLVM for MSBuil...

Oct 1, 2019
Post comments count 4
Post likes count 0

C++20’s Conditionally Explicit Constructors

Sy Brand

is a C++20 feature for simplifying the implementation of generic types and improving compile-time performance. In C++ it is common to write and use types which wrap objects of other types. and are two examples, but there are plenty of others in the standard library, Boost, and likely your own codebases. Following the principle of least astonishment, it pays to ensure that these wrappers preserve the behavior of their stored types as much as is reasonable. Take as an example. It allows implicit conversion from a string literal, but not from a : This is achieved in by marking the constructor which tak...