Some colleagues of mine and I have been working for the past few years to give C++ a standard async programming model. That effort has resulted in a proposal, P2300, that has been design-approved for C++26. If you know me Continue reading What are Senders Good For, Anyway?
In Structured Concurrency, I talk about what structured concurrency is and why it s a big deal for C++ especially. In this post I discuss some more interesting properties of asynchronous code that is structured: async stacks and async scopes. Structured Continue reading Asynchronous Stacks and Scopes
TL;DR: Structured concurrency” refers to a way to structure async computations so that child operations are guaranteed to complete before their parents, just the way a function is guaranteed to complete before its caller. This sounds simple and boring, but Continue reading Structured Concurrency
As you may have heard by now, Ranges got merged and will be part of C++20. This is huge news and represents probably the biggest shift the Standard Library has seen since it was first standardized way back in 1998. Continue reading Standard Ranges
Disclaimer: these are my early thoughts. None of this is battle ready. You’ve been warned. Hello, Coroutines! At the recent C++ Committee meeting in Toronto, the Coroutines TS was forwarded to ISO for publication. That roughly means that the coroutine Continue reading Ranges, Coroutines, and React: Early Musings on the Future of Async in C++
UPDATE April 8, 2016 This post has been edited since publication to reflect my evolving understanding. As a result of the issues raised in this post, it s possible that the committee decides to strengthen the post-conditions on move, so the Continue reading Post-Conditions on Self-Move
This is the fourth and final post in a series about proxy iterators, the limitations of the existing STL iterator concept hierarchy, and what could be done about it. The first three posts describe the problems of proxy iterators, the Continue reading Iterators++, Part 3
Disclaimer: This is a long, boring post about minutia. For serious library wonks only. This is the third in a series about proxy iterators, the limitations of the existing STL iterator concept hierarchy, and what could be done about it. Continue reading Iterators++, Part 2
In the last post, I described the so-called proxy iterator problem: the fact that iterators that return proxy references instead of real references don t sit comfortably within the STL s framework. Real, interesting, and useful iterators fall foul of this line, Continue reading Iterators++, Part 1
Way back in 1999, when the ink on the first C++ standard was still damp, Herb Sutter posed a GoTW puzzler in the still extant C++ Report (RIP): When Is a Container Not a Container? In that article, Herb described Continue reading To Be or Not to Be (an Iterator)