C++ futures part 1: The mental model
26 points by ibobev 2 days ago | 5 comments

ahartmetz 2 hours ago
This seems to omit the main point of it, though? That the compiler turns a function into a state machine that can restart from any of its suspension points. I guess that's the "state" variable, but what I'm talking about is what it contains and the partially compiler-generated code that deals with it.

C++ async is unfortunately a "bring your own runtime" sort of model (for now), but it does handle the part that would be incredibly tedious by hand, building above mentioned state machine.

reply
jcranmer 2 hours ago
That's the co_await/co_yield/co_routine stuff, which this isn't talking about--this is talking about the std::future-et-al logic, which predates C++ coroutines by almost a decade.
reply
kccqzy 2 hours ago
You are confusing it with coroutines. This is just a plain library feature that the compiler doesn’t necessarily have special support for.
reply
thefourthchime 41 minutes ago
Wow, I had no idea Raymond Chen was still doing blog posts. I used to love his posts back in the day.
reply
afdbcreid 36 minutes ago
He writes regularly. Sometimes explaining C++, rarely explaining C#, sometimes historic stories, sometimes current stories, etc..
reply