C++ Team Blog

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

Latest posts

Jul 11, 2019
Post comments count 7
Post likes count 0

Clang/LLVM Support for MSBuild Projects

Will Buik

Visual Studio 2019 version 16.2 Preview 3 includes built-in Clang/LLVM support for MSBuild projects. In our last release, we announced support for Clang/LLVM for CMake. In the latest Preview of Visual Studio, we have extended that support to also include MSBuild projects. While in most cases we recommend using the MSVC compiler, we are committed to making Visual Studio one of the most comprehensive IDEs on Windows. You may want to use Clang instead if you are developing cross platform code, especially if it already depends on Clang or GCC extensions. You can now use Clang/LLVM to target both Windows and Linux usi...

Jun 27, 2019
Post comments count 10
Post likes count 1

Simplify Your Code With Rocket Science: C++20’s Spaceship Operator

Cameron DaCamara

This post is part of a regular series of posts where the C++ product team here at Microsoft and other guests answer questions we have received from customers. The questions can be about anything C++ related: MSVC toolset, the standard language and library, the C++ standards committee, isocpp.org, CppCon, etc. Today's post is by Cameron DaCamara. C++20 adds a new operator, affectionately dubbed the "spaceship" operator: . There was a post awhile back by our very own Sy Brand detailing some information regarding this new operator along with some conceptual information about what it is and does.  The goal of this...

Jun 25, 2019
Post comments count 0
Post likes count 0

Cppp 2019 Trip Report

Sy Brand

Summary CPPP is a new C++ conference in Paris, France. Its first iteration ran for a single day with three parallel tracks, drawing in 160 attendees. The conference great on all fronts: the speakers & talks were varied and high-quality, the venue was right next to the Eiffel Tower and had plenty of space, the food was tasty and varied (shoutout to the cream filled pastries), and the day went smoothly with strong communication from the organisers (Joel Falcou and Fred Tingaud). The three tracks were themed on roughly beginner, intermediate, and expert content, where the beginner track was in French an...

Jun 3, 2019
Post comments count 11
Post likes count 3

Clear, Functional C++ Documentation with Sphinx + Breathe + Doxygen + CMake

Sy Brand

Writing good documentation is hard. Tools can’t solve this problem in themselves, but they can ease the pain. This post will show you how to use Sphinx to generate attractive, functional documentation for C++ libraries, supplied with information from Doxygen. We’ll also integrate this process into a CMake build system so that we have a unified workflow. For an example of a real-world project whose documentation is built like this, see fmtlib. Why Sphinx? Doxygen has been around for a couple of decades and is a stable, feature-rich tool for generating documentation. However, it is not without its issues. Docs...

May 28, 2019
Post comments count 7
Post likes count 0

CMake 3.14 and Performance Improvements

Justin Goshi

In Visual Studio 2019 version 16.1 we have updated the version of CMake we ship inbox to CMake 3.14. This comes with performance improvements for extracting generated build system information. Additionally, we now support virtually all the Visual Studio capabilities regardless of the CMake binary origin so long as the CMake version is at least 3.14. The main reason for this is the introduction of the file-based API, which we now support, and which provides a new way for retrieving semantic information. This is now the recommended way to connect an IDE to CMake, the old CMake server being deprecated, and we are an...

May 14, 2019
Post comments count 14
Post likes count 0

Quick Info Improvements in Visual Studio 2019: Colorization and Search Online

Nick Uhlenhuth

The Quick Info tooltip has received a couple of improvements in Visual Studio 2019 version 16.1 Preview 3.  Quick Info Colorization  While Quick Info was previously all black text, the tooltip now respects the semantic colorization of your editor:    If you’d like to customize your semantic colorization, you can do that by searching “font” in the Visual Studio Search box (Ctrl + Q), or by navigating to Tools > Options > Environment > Fonts and Colors:    Quick Info Search Online  The Quick Info tooltip has a new “Search Online” link that will search for online docs to learn more about the ho...

May 13, 2019
Post comments count 5
Post likes count 0

Visualize your build with IncrediBuild’s Build Monitor and Visual Studio 2019

Nick Uhlenhuth

There’s seeing your build, and then there’s REALLY seeing your build. The difference can be quite dramatic, unveiling a new world of possibilities. As part of a partnership between IncrediBuild and Visual Studio, you can enjoy these possibilities directly within Visual Studio. We previously discussed IncrediBuild, a software acceleration technology that speeds up your builds, tests, and other development process times. While IncrediBuild’s solution is known mainly for its impressive development acceleration capabilities, there’s another, very interesting capability to take note of: IncrediBuild’s Build Monitor...

May 10, 2019
Post comments count 22
Post likes count 0

Linux Development with C++ in Visual Studio 2019: WSL, ASan for Linux, Separation of Build and Debug

Erika Sweet

In Visual Studio 2019 you can target both Windows and Linux from the comfort of a single IDE. In Visual Studio 2019 version 16.1 Preview 3 we announced several new features specific to the Linux Workload: native support for the Windows Subsystem for Linux (WSL), AddressSanitizer integration, and the ability to separate build and debug targets. If you’re just getting started with cross-platform development, I recommend trying our native support for WSL. Native support for the Windows Subsystem for Linux (WSL) Visual Studio now provides native support for using C++ with WSL. WSL lets you run a lightweight Linux e...

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

AddressSanitizer (ASan) for the Linux Workload in Visual Studio 2019

Erika Sweet

In Visual Studio 2019 version 16.1 Preview 3 we have integrated AddressSanitizer (ASan) into Visual Studio for Linux projects. ASan is a runtime memory error detector for C/C++ that catches the following errors: You can enable ASan for MSBuild-based Linux projects and CMake projects that target a remote Linux system or WSL (Windows Subsystem for Linux). If you are just getting started with cross-platform development, I recommend following this walk-through to get started with Visual Studio’s native support for WSL. ASan detects errors that are encountered during program execution a...