I have yet to see a non-managed systems programming language which supports coroutines properly.
Rust supports async/await, but it's not the same thing, as this comment illustrates:
Re:C++20 Ranges
by mikeloomis on Saturday December 22, 2018 @11:32PM
(#18744441)
It'll be after 20 for sure, we're still waiting for the executor TS for async networking to be able to come in.
The range function in python is similar only in name, the c++20 range concept is not a generator.
2. There is a coroutine feature branch, I believe developed by Gor Nishanov, https://github.com/GorNishanov. Also not related to c++20 ranges.
3. Eric Niebler used a single templated function. This is not anywhere close to template metaprogramming hell, and I think you should look into templates as once you learn about them they become way less intimidating. Also has nothing to do with c++20 ranges.