C++ Level 3 – Expand Your Use of Modern C++
Overview:
This three-day training fully leverages the power of C++, focusing on the well-established, state-of-the-art "Modern C++" standard. In this class, testing is integrated naturally into the development process, ensuring code is designed with testability in mind.
Beyond polymorphism, templates enable the creation of truly reusable, generic code. The C++ Standard Library offers a rich set of features, eliminating the need to "reinvent the wheel." The latest C++ standard, C++23, along with its predecessors (C++11, C++14, C++17, and C++20), enhances both the core language and the standard library. Key language extensions include rvalue references, variadic templates, lambda functions, and coroutines. The standard library also introduces powerful features like multithreading, tuples, general-purpose smart pointers, and regular expressions.
With work already underway on the next revision, C++26, this training will also provide an overview of its upcoming features.
Goal/Benefits:
This training picks up where a basic C++-training would end. The main pervasive theme is memory management.
Furthermore, we will explore many issues and features in C++ like:
• Apply unit testing as natural part of the software development process, and – when necessary to break dependencies – also apply mocking
• Comprehend when polymorphism or templates shall be used in connection with generic solutions
• Understand the necessity of in-depth memory management
• Get an overall overview of the C++ standard library.
• Comprehend the minimal effort required to write exception-safe code
The major objective of this class is that you shall be able to use C++ in a “correct way”.
Audience/Participants:
This training is aimed experienced C++-programmers who want to want to deepen the knowledge in C++.
Previous Knowledge:
The course requires basic skill, at least 3 years’ experience, in C++ programming. In line with the courses “C++ Level 1 - An Odyssey of C++: Core Language” as well as “C++ Level 2 - An Odyssey of C++: Standard Library”.
Practical Exercises:
During the training you will practice the presented topics in a set of exercises.
We will write unit tests as a natural part of each exercise.
We will use the open and free integrated development environment from Eclipse.
Course Modules:
A. Introduction
▪ Keywords Improving the Quality
• Type Deduction with auto
▪ Uniform Initialization
▪ One-method Interfaces - Lambdas
▪ Range-based Loops
▪ Scoped enums
▪ Memory Management
• nullptr
B. Modern Standard Library
▪ R-value References and the Associated Move Support
• Impact on Container Components
▪ General Purpose Smart Pointers
▪ Multithreading
• Parameter Passing
▪ Unordered Associative Containers
C. Memory Management
▪ Avoiding Raw Pointers
• Never use new and delete
▪ Smart Pointers
▪ Allocators
▪ C++ Memory Model
• Atomic Types
Harald Lüning
Course leader for ""Test-Driven Development and Unit Testing"" and C/C++ courses:
Harald Lüning is one of our top course leaders, and has extensive practical and theoretical experience in C/C++ programming, object-oriented system development, and test-driven development
