This series of articles show the design and implementation of future-like asynchronous computation chains that do not require any dynamic memory allocation or type erasure.
by Vittorio Romero
From the article:
I'd like to show an alternative design [for futures] that doesn't require any allocation whatsoever and still enables users to build up asynchronous computation chains using facilities such as `when_all` and `.then`. [...] The idea behind it is to encode the entire computation chain into a single object with a huge type.