C++20 Concepts and Ranges in Practice
Concepts and ranges are probably THE two key features of C++20 you can immediately use. They change your programming style more than anything else. As usual for C++, things are not self-explanatory. There are important design aspects to recognize, details to know, and severe traps to avoid.
This tutorial introduces concepts (with requirements and constraints) and ranges (with views) in detail. We will see how to combine the various features and how to use them in practice both as an application programmer and as a library provider. The focus is on conceptional understanding of the cool and the ugly features to benefit from them in practice and use them where appropriate.
Nicolai Josuttis (www.josuttis.com) is well known in the C++ Community for speaking and writing with authority about C++ (being the author of "C++20 - The Complete Guid", "C+++17 - The Complete Guide", "C++ Move Semantics - The Complete Guide", "The C++ Standard Library", and "C++ Templates" (coauthor)) but is also an innovative presenter. He is an active member of C++ standardization committee for more than 20 years now.