Practical Modern C++ [2017 Class Archive]

“Practical Modern C++” is a two-day training course taught by Patrice Roy of Sherbrooke University. It is offered at the Sheraton Bellevue Hotel from 9AM to 5PM on Saturday and Sunday, September 30th and October 1st, 2017 (immediately after the conference). Lunch is included.

Course Description

This course aims to bring an understanding of what C++ 14 and C++ 17 features can bring to make programming simpler, more pleasant, and lead to more efficient programs.

The target audience is programmers who want to be acquainted with possible use-cases for the new library and language features they will face as C++ 17 becomes available, or who have not yet gained familiarity with the possibilities opened up by C++ 14.

We will apply a variant of project-based learning, adapted to the compact two-day CppCon class format. Thus, participants will be presented problems they can (hopefully!) solve given pre-C++ 14 techniques and tools, and will in most cases be provided with some working, preexisting code as a baseline. Participants will work either alone or as small teams depending on the problem presented. Once a problem-solving phase has completed, the instructor will explore alternative ways to solve the proposed problems by leveraging the C++ 14 and C++ 17 languages and tools. Discussion of the advantages and tradeoffs of each approach will follow.


You might find this class interesting:

  • If most of the new C++17 features are things you have wondered about but have not had the opportunity to explore yet
  • If you have an idea of what C++17 is but are unsure as to how you could use them to make your code better, or
  • If you are a C++ enthusiast who wants to get acquainted with modern C++ practice

Since the class will involve problem-solving exercises, participants are expected to bring their laptops (or equivalent development tool) and a recent C++ compiler of their choice; compilers that support C++ 17 are obviously preferable given the subject matter. We will strive to constrain ourselves to standard C++ only, avoiding non-portable or platform-specific code as much as possible.

Course Topics

A non-exhaustive list of features one can expect to be covered from an applied perspective in this class includes std::any, std::variant, std::string_view, generic lambdas, generalized constexpr, std::quoted(), new attributes, if constexpr, std::void_t, structured bindings, parallel algorithms and many others.

Class contents will be adapted to cover the set of features in the finalized version of  C++17.

Course Instructor

Patrice Roy

Patrice Roy has been playing with C++, either professionally, for pleasure or (most of the time) both for over 20 years. After a few years doing R&D and working on military flight simulators, he moved on to academics and has been teaching computer science since 1998. Since 2005, he’s been involved more specifically in helping graduate students and professionals from the fields of real-time systems and game programming develop the skills they need to face today’s challenges. The rapid evolution of C++ in recent years has made his job even more enjoyable.

He has five kids, and his wife ensures their house is home to a continuously changing number of cats, dogs and other animals.