Advanced Modern C++

Learn the relevant library and language changes

Participants are given ample opportunity to lift their C++ skills to the next level with this comprehensive course, designed for developers with a good working knowledge of the C++ language.

The course offers modern techniques and tools from C++11 to C++20, and even some features from C++23, giving participants the ability to write better, more efficient and less error-prone code.

The primary goal of the Advanced Modern C++ training course is to help you understand how the latest advancements in C++ can significantly enhance your coding abilities. We will explore a wide range of modern features, techniques, and best practices that can make your codebase better organized, easier to maintain, and more intuitive to reason about. By leveraging these improvements, you will be able to write code more effectively, with a focus on reducing bugs and increasing overall code quality.

Throughout the course, we will build upon your existing C++ knowledge and fill any gaps that you may have encountered. We will provide a comprehensive review of core concepts and reinforce your understanding of key language features.

Additionally, we will dive into advanced topics, such as move semantics, automatic type deduction, smart pointers, lambda expressions, and template metaprogramming. You will learn how to leverage these techniques to write concise, expressive, and efficient code.

Courses are offered by KDAB trainers with a deep knowledge of the C++ language as well as possessing excellent tutoring skills. As for all our courses, there will be a mix of presentation and labs and class numbers are restricted to a maximum of 12 people to ensure personal attention.

Course contents:

Key topics covered in this course include:

  • Introduction to Modern C++
    • Overview of C++11, C++14, C++17, C++20, and C++23 features and evolution
    • Understanding the benefits of modern C++ improvements
    • Upgrading existing codebases to utilize modern features
  • Modern Resource and Memory Management
    • Move semantics and perfect forwarding
    • Smart pointers and RAII (Resource Acquisition Is Initialization)
  • Core Language Enhancements
    • Type deduction and auto keyword
    • Range-based for loops
    • Initializer lists and uniform initialization
    • Lambdas and functional programming
  • Standard Library Enhancements
    • Ranges, views and algorithms in the Standard Template Library
    • Vocabulary Types
    • Generic programming and template metaprogramming
  • C++ Best Practices
    • Deal with the Legacy Burden
    • Design patterns and tooling for idiomatic C++
    • Writing clean, maintainable, and efficient code
  • Optional topics include:
    • Multithreading and concurrency
    • Concepts and constraints
    • Variadic templates and fold expressions
    • Three-way and defaulted comparisons
    • The tuple protocol for destructurable types

By the end of the training you will have a solid understanding of Modern C++ concepts and techniques, and you will be able to leverage the latest features and best practices to improve the quality, readability, and performance of your C++ code.

The course contents are regularly updated to reflect the latest developments in the C++ language and ecosystem.

Download the full table of contents...

Course Information

This course is for:

Professional C++ developers

Prerequisites:

This course requires prior working experience with C++ and a good understanding of its fundamentals. Familiarity with object-oriented programming concepts and basic data structures is also recommended.

Duration:

The standard duration of this course is 4 days. It can also be extended to 5 days in order to accommodate more topics.

Upcoming Courses

Start

Days

Location

Course

Language

Price ex. VAT

██████

███

███████████████

███

███

█████

███

██████

███

███████████████

███

███

█████

███

██████

███

███████████████

███

███

█████

███

* plus VAT if applicable

“We had a perfectly tailored training to learn modern C++ features and to understand all the things in detail. Now we are well prepared for future C++ projects and for using C++ more efficiently.”

— Jürgen Schneider

IGEL Technology GmbH, Germany

Why learn C++?

C++ is widely used and has become a de facto standard, with extensive libraries. C++11, released in 2011, was a new major version of the C++ standard and brought many new features to C++ to make the language safer and faster as well as easier and more fun to use. Every professional C++ developer will sooner or later come into contact with C++11/ C++14/C++17, or C++20, and introducing their advantages early can only be beneficial.

Because of all the numerous changes, the C++ creator Bjarne Stroustrup said that “C++11 feels like a new language”. Further incremental improvements, C++14, C++17, and C++20, have been released, with C++23 next in line.