C++ futures part 1: The mental model

(devblogs.microsoft.com)

16 points | by ibobev 1 day ago

1 comments

  • ahartmetz 15 minutes 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.

    • kccqzy 3 minutes ago
      You are confusing it with coroutines. This is just a plain library feature that the compiler doesn’t necessarily have special support for.
    • jcranmer 7 minutes 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.