The Most Misunderstood Features of C++ is a two-day training course with programming exercises taught by Ben Saks. It is offered online from 11AM to 5PM Eastern Time (EDT), Monday September 21st through Wednesday September 23rd, 2020 (after the conference).
Course Description
Most programming languages have dark corners, and C++ seems to have more than its share. Almost all C++ programmers struggle to some extent with parts of the language that they don’t quite understand. Some of these parts are inherited from C, while others are specific to C++. A lack of understanding in these areas could be hurting your productivity, reducing the quality of your work, and taking away some of your fun.
This session shines a bright light into some of the darkest corners of C and C++. You’ll gain important insights that should help you be a better, happier, and more productive programmer.
Course Topics
- Scope, linkage, and storage duration
- The structure of declarations
- The different forms of initialization
- Const vs. constexpr
- Incomplete types
- Lvalues, rvalues, and xvalues
- Rvalue references vs. “universal” references
- Name lookup
- Using-declarations vs. using-directives
- Overloading and default arguments
- Overloading vs. overriding
- Overloading vs. template type deduction
- Precedence vs. evaluation order
- Program execution sequence (formerly “sequence points”)
- Arrays vs. pointers (time permitting)
- Auto vs. decltype (time permitting)
Note: The list of Course Topics is somewhat tentative. A few topics may be added or removed depending on how well this list of topics fits into the available time.
Prerequisites
Students are expected to be experienced software developers who are familiar with C++. Knowledge of Modern C++ features and ideas is helpful but not required.