P2300 introduces `std::execution` and the Senders & Receivers (S&R) model as a new paradigm for expressing asynchronous computation. `std::execution` specifies a fixed set of algorithms that, in some sense, define the baseline DSL of S&R, but this set is not exhaustive. Extending it to cover new use cases is possible, but the standard provides no guide to doing so, because the standard is not a guide.
This talk will detail the process of adding a new S&R algorithm by examining the implementation of `when_all_range`, a variation of `when_all` which is part of `std::execution`. Through this example, the audience will see how transformations and control flow can be expressed within `std::execution`, how new algorithms fit into the broader execution model, and what considerations ensure they remain efficient and composable.
By the time they leave the talk, attendees will have a clearer understanding of how to extend the S&R framework and implement `std::execution`-based algorithms that integrate seamlessly with modern C++ codebases.
View Slides
Robert is a graduate of the University of Victoria where he specialized in graphics, gaming, and digital geometry processing. After spending 4.5 years in full stack web development he pivoted to financial infrastructure in late 2016 whereafter he spent nearly nine years at a start up working on next generation financial market data storage and retrieval mechanisms. In 2019 he became involved in the ISO C++ committee with a particular focus on library evolution. Since summer 2025 he has worked as a core developer at Hudson River Trading.