C++ Team Blog

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

C++20 Coroutine Improvements in Visual Studio 2019 version 16.11

This post includes contributions from Terry Mahaffey and Ramkumar Ramesh. We last blogged about coroutine support in Visual Studio 2019 version 16.8. In the releases since 16.8 we've introduced several new coroutine features and improvements. This post is a round up of those improvements, all available in Visual Studio 2019 16.11. ...

Using C++ Resumable Functions with Libuv

Previously on this blog we have talked about Resumable Functions, and even recently we touched on the renaming of the yield keyword to co_yield in our implementation in Visual Studio 2017. I am very excited about this potential C++ standards feature, so in this blog post I wanted to share with you a real world use of it by adapting it to the ...

`yield` keyword to become `co_yield` in VS 2017

Coroutines—formerly known as “C++ resumable functions”—are one of the Technical Specifications (TS) that we have implemented in the Visual C++ compiler. We’ve supported coroutines for three years—ever since the VC++ November 2013 CTP release. If you’re using coroutines you should be aware that the keyword `yield` is being ...

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 ...