What do threads, atomic variables, mutexes, and conditional variables have in common? They are the basic building blocks of any concurrent application in C++, which are even for the experienced C++ programmers a big challenge.
Therefore, it's good that we get with C++17 and C++20 to new standards.
What can we expect with C++17, what can we hope for with C++20?
With C++17, most of the standard template library algorithms will be in a sequential, parallel, and vectorized variant available. Three years later, we can look forward to transactional memory, significantly improved futures and coroutines. But these are just the highlights from the concurrent and parallel perspective. Thus there is the reasoned hope that in the future C++ abstractions such as transactional memory, futures and coroutines will be used and that threads, atomic variables, mutexes and condition variables will be degraded to implementation details.