Using C++20 in Practice: A Complete Introduction
Nico Josuttis
C++20, a major release of C++ with several new features, is now becoming mainstream. This two-day workshop gets you ready to use it. It teaches all significant new features in a way that you understand their power and can start to use them in practice.
C++20 is huge. It will change the way we program more dramatically than C++11 did. As usual, not everything is self-explanatory, combining new features gives even more power, and there are hidden pitfalls. Therefore, it is key to really understand design and conceptional details of the new features of C++20 to use them right.
This two-day workshop will go through all major and important minor features of C++20 (covering both language and library), motivating them, providing compelling examples, and giving key insights and hints about how to use them in practice. Important C++23 extensions and modifications for these features are also covered.
As a member of the C++ standards committee, Nicolai will also give useful background information about purpose and design decisions.
As a result, you will understand the power of the programming paradigm C++20 intoduces to use them appropriately without too much frustration, because things do not work as self-explanatory as they look at first.
Outline
Topics include: - The spaceship operator <=> (and where it breaks code) - Generic functions with auto - Concepts, constraints, and requirements in detail - Ranges and views in detail (including all the pitfalls of the design of views) - Spans - Coroutines - jthread and stop tokens - Barriers, latches, and semaphores, extensions for atomics, output sync streams - Chrono extensions (calendar and time zone support) - Formatted output (standard and user-defined formatting) - Modules - Extensions to compile-time computing (consteval, constinit, template extensions)
Nico Josuttis
Nicolai Josuttis (www.josuttis.com) is well-known in the community for his authoritative books and talks. For more than 20 years he has been a member of the C++ Standard Committee. He is the author of several worldwide best-sellers, including: - C++20: The Complete Guide - C++17: The Complete Guide - C++ Move Semantics: The Complete Guide - The C++ Standard Library: A Tutorial and Reference - C++ Templates: The Complete Guide (w/ David Vandevoorde & Doug Gregor)