top | item 44783169

(no title)

bluetomcat | 7 months ago

What a mess of an article. A pretentious mishmash of scattered references with some vague abstract claims that could be summarised in one paragraph.

discuss

order

flohofwoe|7 months ago

Sort of fitting though, because C++ coroutines turned out quite the mess (are they actually usable in real world code by now?).

I think in the end it's just another story of a C++ veteran living through the inevitable Modern C++ trauma and divorce ;)

(I wonder what he's up to today, ITHare was quite popular in game dev circles in the 2010s for his multiplayer networking blog posts and books)

pjmlp|7 months ago

They have been always usable in the real world, as they were initially based on async model of doing C++ programming in WinRT, inspired by .NET async/await.

Hence why anyone that has done low level .NET async/await code with awaitables and magic peoples, will fell right at home in C++ co-routines.

Anyone using WinAppSDK with C++ will eventually make use of them.

TuxSH|7 months ago

> C++ coroutines turned out quite the mess (are they actually usable in real world code by now?).

They are, they are extensively used by software like ScyllaDB which itself is used by stuff like Discord, BlueSky, Comcast, etc.

C++ coroutines and "stackless coroutines" in general are just compiler-generated FSMs. As for allocation, you can override operator new for the promise types and that operator new gets forwarded the coroutine's function arguments