C++20 in Practice: A Complete Introduction is a two-day training course with programming examples taught by Nicolai Josuttis, one of our most popular instructors. It is offered onsite at the Gaylord Rockies from 09:00 to 17:00 on Saturday, October 23rd and and Sunday, October 24th, 2021 (immediately prior to the conference). Lunch is included.
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.
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
- 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
- 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, …)
Nicolai Josuttis is well 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)