This conference talk from CppCon 2024 explores advanced applications of C++ coroutines for asynchronous programming. Dive into the essential techniques for managing asynchronous control flow with coroutines, including reconstructing call stacks of nested asynchronous calls to bridge the gap between C++'s stackless coroutines and stackful coroutines found in other languages. Learn how to implement async/await mechanisms similar to those in Python or JavaScript, and discover methods for manipulating the call stack to fully leverage C++'s coroutine capabilities. Gain comprehensive understanding of the Task type commonly found in coroutine libraries and its application in managing asynchronous operations—knowledge that serves as a foundation for more advanced mechanisms like the sender/receiver proposal for C++26. The presentation assumes basic familiarity with C++ coroutine components including promises, awaitables, coroutine handles, and data passing techniques. This is the second installment in an ongoing series about C++20 coroutines presented by Andreas Weis, an experienced C++ developer who specializes in creating portable code with richly-typed interfaces across various domains.
Overview
Syllabus
Deciphering C++ Coroutines Part 2 - Mastering Asynchronous Control Flow - Andreas Weis - CppCon 2024
Taught by
CppCon