This post is a lengthy answer to a question from Alisdair Meredith via Twitter
by Sean Parent
From the article:
The question is regarding the numerous proposals for a better
futureclass template for C++, including the proposal from Felix Petriconi, David Sankel, and myself.
It is a valid question for any endeavor. To answer it, we need to define what we mean by a
futureso we can place bounds on the solution. We also need to understand the problems that a
futureis trying to solve, so we can determine if a
futureis, in fact, a useful construct for solving those problems.
The proposal started with me trying to solve a fairly concrete problem; how to take a large, heavily threaded application, and make it run in a single threaded environment (specifically, compiled to asm.js with the Emscripten compiler) but also be able to scale to devices with many cores. I found the current standard and boost implementation of futures to be lacking. I open sourced my work on a better solution, and discussed this in my Better Code: Concurrency talk. Felix heard my CppCast interview on the topic, and became the primary contributor to the project.