C++20 in Practice: A Complete Introduction [2021 class archive]

C++20 in Practice: A Complete Introduction is a three-day training course with programming examples taught by Nicolai Josuttis, one of our most popular instructors. It is offered online from 09:00 to 15:00 Aurora time (MDT), 11:00 to 17:00 EDT, 17:00 to 23:00 CEST, Wednesday, October 20th through Friday, October 22nd, 2021 (before the conference).

from Wednesday, October 20th through Friday, October 22nd, 2021 (prior to the conference).

Course Description

C++20 is the brand new release of C++, now supported by major compilers. This class teaches in a way that you can start to use it 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 traps. So, the key question is what this means in practice.

This class will go through all major and important minor features of C++20 (covering both language and library), introduce them conceptually, provide compelling examples, and give important hints about how to use them in practice.

As a member of the C++ standards committee, Nicolai will also give useful background information about purpose and design decisions.


Students are expected to have a basic knowledge of programming in Modern C++ (loops, auto, templates, references, …).

Students are not required to bring any laptop. We will go through code examples together with the laptop of the presenter.

Course Topics

We will cover the following features in an order similar to how they are listed here:

  • Motivation and context of C++20
  • The spaceship operator <=>
  • Generic functions
  • Concepts and requirements
  • Ranges
  • Views
  • Spans
  • Coroutines
  • jthread and stop tokens
  • Barriers, latches, and semaphores
  • Other new concurrency features (atomic_ref, atomic shared pointers, unseq, …)
  • Chrono extensions (calendar and time zone support)
  • Formatted output
  • Modules
  • consteval, constinit, and other new compile-time features
  • New NTTP types
  • Several small new language features (char8_t, new attributes, conditional explicit, …)
  • Several small new library features (string extensions, synchronized streams, …)

Register Here

Course Instructor

Nicholia 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 (draft available)
  • 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)