The C++26 specification includes the sender/receiver framework for dealing with asynchronous operations. It defines a vocabulary, as well as various algorithms and utilities using this vocabulary. The current specification doesn't include a matching coroutine task class template, though it is expected that most users would use coroutines to actually use the facilities.
This presentation discusses various aspects for creating a coroutine task suitable for many needs, including: - The basic operation of a sender/receiver aware task - Scheduler affinity and why it is important - Allocator support for the coroutine frame - Providing an environment to child operations - Propagating errors without exceptions
View Slides
Dietmar Kühl is a senior software developer at Bloomberg, where he works on the data distribution environment used both internally and by enterprise installations at clients. Before joining Bloomberg, he did consulting for software projects mainly in the finance sector. He is a regular attendee of the ANSI/ISO C++ standards committee (WG21) and presents at conferences. He used to be a moderator of the newsgroup comp.lang.c++.moderated and frequently answers questions on Stack Overflow.