Using C++20 in Practice: A Complete Introduction

Nico Josuttis

⏱ 2-day-workshop
10:00-18:00, Monday, 1st - Tuesday, 2nd July 2024

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.


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)

🏷 C++20
🏷 concepts
🏷 ranges
🏷 views
🏷 constraints
🏷 requirements
🏷 span
🏷 coroutines
🏷 modules
🏷 operator <=>

Nico Josuttis

Nicolai Josuttis ( 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)