Modern C++

course image

Modern C++

Learn advanced object programming paradigms in C++ variants 11, 14, and 17.


This course teaches you how to use the advanced object programming paradigms in C++ variants 11, 14, and 17. The course builds on basic C++ knowledge that enables you to utilize constructs such as move semantics, lambdas, templates, etc. in their C++ software solutions. Thanks to these high-level OOP, C++ is great to model complex systems, such as autonomous driving systems in vehicles.


Course topics:

  • C++ language extensions (C++11, C++14, C++17), nullptr, auto, scoped enumerations, compile-time assertions, string literals
  • C++ better class design: override, final, implicitly-declared operations, =delete, =default, delegating constructors, explicit, user-defined literals (UDL)
  • Move semantics: move constructor, move assignment, the rule of five, rvalue references, perfect forwarding, forwarding references
  • Lambdas: function objects, lambda expressions, variable capturing, generic lambdas, return type deduction, usage with STL algorithms
  • Multithreading: threads, passing parameters to threads, thread joining, mutexes, locking, condition variables, semaphores
  • Templates: function templates, variadic templates, tuples, template specializations, type traits, if constexpr


Software: IDE with C++ compiler (e.g Visual Studio Code, CMake, and C++ compiler supporting C++11 dialect or later, such as clang, g++ etc.).

Hardware: Computer with an Internet connection, working speakers, and microphone.

Prior knowledge: Participants should have basic knowledge of programming in C++.