Eric Niebler's ranges library is a rare feat in software engineering. It manages to simplify the use of existing STL high-order functions, while adding lazy evaluation, with a topping of data generation. Not only is it part of the C++ 20 standard, but it is also useful for older versions of C++.
Even if you don't use a functional style of structuring your code, and whether you prefer mutable or immutable code, the ranges library allows you to make it elegant and composable. Therefore, I advise you to play with it and try for yourself how it changes your code. It's definitely worth it, and it's an enjoyable exercise.
We're closing in on the end of this book. It's now time to have a look at STL and the language standard support functional programming, and what we can expect from C++ 20, and this will be the topic of the next chapter.
...