C++ Team Blog

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

Compiler improvements in VS 2015 Update 3

The C++ compiler team is excited for you to try out the compiler in Visual Studio 2015 Update 3. We've made significant progress towards C++ standards conformance between the first release of Visual Studio 2015 and VS 2015 Update 3. Update 3 also has improvements in expression SFINAE, nested namespaces, and generalized range-based for loops. ...

Expression SFINAE improvements in VS 2017 RC

This post written by Xiang Fan, Andrew Pardoe, and Gabriel Dos Reis This post was updated to reflect progress we've made through VS 2017 RC since VS 2015 Update 3. Throughout the VS 2015 cycle we've been focusing on the quality of our expression SFINAE implementation. Because expression SFINAE issues can be subtle and complex we've been ...

Standards version switches in the compiler

Shareable link: https://aka.ms/versionswitches Official documentation on docs.microsoft.com. This blog post written by Gabriel Dos Reis, Ulzii Luvsanbat, and Andrew Pardoe. In Visual C++ 2015 Update 3 we are introducing tools to help you control the version of the ISO C++ programming language you depend on and the version you want VC++ to ...

C++ Core Guidelines Checkers are now in a single NuGet package

Update: The C++ Core Guidelines Checkers are now included in-box with Visual Studio 2017. See this post for details: https://blogs.msdn.microsoft.com/vcblog/2016/10/12/cppcorecheck It has been an exciting year since the C++ Core Guidelines and checkers were announced starting with Bjarne Stroustrup's opening keynote at CppCon 2015. We've ...

Using C++ Coroutines to simplify async UWP code

The Universal Windows Platform (UWP) introduced many async APIs; there are now almost 1700 of them. In fact, the team switched every API that could take 50ms or more to complete to async mode. Coding with the async pattern is not an easy task, especially in C++ where you have to create a ppl task and use a continuation (.then) with some ...

Stuck on an older toolset version? Move to Visual Studio 2017 without upgrading your toolset

⏱ Updated on March 11, 2019 with the latest functionality in Visual Studio 2017 Are you currently developing your C++ projects in an older version of Visual Studio? If your reasons for avoiding the all-new features in VS 2017 are covered next, then read on: this post may have good news for you. Help! I am stuck! There are many reasons why...

New Options for Managing Character Sets in the Microsoft C/C++ Compiler

The Microsoft C/C++ compiler has evolved along with DOS, 16-bit Windows, and 32/64-bit Windows.  Its support for different characters sets, code pages, and Unicode has also changed during this time.  This post will explain how our compiler has worked in the past and also cover some new switches provided by the C/C++ compiler in Visual ...

Compiler improvements in VS 2015 Update 2

The C++ compiler team is excited for you to try out the compiler in Visual Studio 2015 Update 2 CTP 1. Since Update 1 we’ve made progress on being Standards-conformant for lot of C++11 and C++14 features. One particularly big milestone is that our standard library in Update 2 supports every C++ Standard Library feature that’s been voted ...

What's inside a PDB File?

Background We have all used the Visual Studio Debugger to step through code, in the hunt for bugs.  For C or C++ code, that Debugger relies upon a file, with the extension ".pdb", called the "Program DataBase", or simply "the PDB".  The PDB is written by the Linker when you build your program; it contains line-number and symbols ...

What’s inside a PDB File?

Background We have all used the Visual Studio Debugger to step through code, in the hunt for bugs.  For C or C++ code, that Debugger relies upon a file, with the extension ".pdb", called the "Program DataBase", or simply "the PDB".  The PDB is written by the Linker when you build your program; it contains line-number and symbols ...