The Most Misunderstood Features of C++ [2020 class archive]

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.

Register Here

Course Instructor

Ben Saks

Ben Saks is the Chief Engineer of Saks & Associates. Previously he was a Software Engineer at Vorne Industries where he used C++ and JavaScript to develop embedded systems that help improve manufacturing productivity in factories all over the world. He is a contributing author on multiple patents and a technical editor for much of Saks & Associates’ C++ training curriculum.