1 we implemented a barebones
.then continuations without needing
allocations or type-erasure. The idea behind it was to encode the entire
computation chain into a single object with a huge type:
// pseudocode auto f = initiate(A).then(B).then(C).then(D); // ...would become something like: /* D<C<B<A>>>> */
We previously stored the “parent” node by moving
as part of a generalized lambda capture, and stored the
Callable itself via EBO (empty base optimization).
As we will explicitly need access to the “parent” node’s type to support
non-blocking schedulers and implement
when_all in the
future, it’s time significantly improve our design.