Ah, that's a common misconception. Even with coroutines you still want explicit async calls and futures, otherwise if you restrict yourself only sync calls, you either have to artificially serialize operations or have to spawn artificial coroutines.
What do you do not want are explicit uses of 'future::then' and the required manual CPS transform. Instead you want a wait-for-{any,all} future operations.
Is there any compiler to date that has a fully developed and released parallel algorithms library? The last time I checked a lot of this work still looked like it was in the research stage.
I share your enthusiasm tho. It will probably introduce parallel code into everyday C++ projects faster then new special purpose parallel programming primitives will.
I'm quite annoyed by announcements like this. To be complete, you have to provide a complete solution. It's really annoying with GCC that you have to check in multiple places to see which features a given release supports.
You are right. The thing is though that you (or third parties) can implement missing library features that do not require compiler support [1], but for the language itself you have to wait for the compiler. For example, thanks to the hyperproductive STL [2], MSVC has always had a fairly up to date library, but the compiler lagged behind.
[1] For a long time libstdc++ lacked regex support, but people could get them from boost and mostly didn't care.
https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#...