Advanced and Modern C++ Programming: The Tricky Parts is a two-day onsite training course with programming examples, taught by Nicolai Josuttis. It has been one of our most popular classes. It is offered at the Gaylord Rockies from 09:00 to 17:00 Aurora time (MDT) on Saturday and Sunday, September 14th and 15th, 2024 (immediately prior to the conference). Lunch is included.
Course Description
Whenever I give C++ training I run into the same topics of “half knowledge”. We use a lot of pretty complicated features (e.g., templates, move semantics, and smart pointers) in our day-to-day programming without full understanding. Most of the time this works fine, but sometimes not. Even vectors and strings may cause surprises (e.g., to understand when and how memory is allocated).
This tutorial will discuss all these “tricky fundamental” C++ features application programmers see and use day by day. We will motivate them, understand them, and see how they should be used in practice. As a result, you will understand C++ a lot better and advance to the next level of an experienced C++ programmer.
As a long-time member of the C++ standards committee and experienced trainer, Nicolai will also give useful background information about purpose and design decisions.
Prerequisites
Students are expected to have a basic knowledge of Modern C++.
Students are not required to bring any laptop. We will go through code examples together with the laptop of the presenter.
Course Topics
- Strings (and the short string optimization)
- When to use which container
- Using templates in practice
- The hidden penalty of using shared pointers
- How to benefit from move semantics in practice
- Universal/forwarding references (and when you need them)
- Hidden friends
- When types decay
- Value categories (and why I should care)
- Overload resolution and SFINAE
- All the crazy details about initialization
- Rules of special member functions
- Concurrency traps
- Allocators (why, when, and how)
Register Here
Course Instructor
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: