C++ Advanced Programming Training

This C++ advanced course introduces C++ concepts for advanced programmers. This includes especially templates, which are the basis for the C++ standard library (STL).

This course differs from many other C++ courses in that the new language elements of C++11, C++14 and C++17 are used from the beginning. It is aimed at software developers in companies who want to program professionally with C++. The course can be conducted with the compiler of your choice (Microsoft C++ with Visual Studio 2017, gcc etc.).

This C++ advanced course, together with the C++ basic course, provides a comprehensive overview of modern C++.

The lecturer Prof. Richard Kaiser has already held well over 100 company seminars on C# and C++. His customers include renowned global corporations and small and medium-sized enterprises. He knows the practical requirements and deals with them in detail both in the basic concepts and in the details.

Contents C++ advanced course:

The contents can be adapted to the wishes of the participants.

1. Namespaces

  • Defining and using namespaces

2. Exception handling

  • try, catch, throw
  • Exceptions in the Standard Library
  • Releasing Resources (RAII)
  • noexcept

3. Standard library containers

  • Sequential containers, iterators
  • Ordered and unordered associative containers
  • vector, list and deque

4. Functors and lambda expressions

  • The call operator
  • Predicates and comparison functions
  • Lambda expressions

5. Templates

  • Function templates and specializations
  • Non-Type Parameters
  • Recursive Function Templates and Variadic Templates
  • Class templates
  • Type traits
  • Type inference

6. STL algorithms and lambda expressions

  • Iterators: reverse generators, insert functions and insert generators, stream iterators
  • Linear search and counting
  • Searching for subsequences
  • Minimum and maximum
  • Swapping elements
  • Copying ranges
  • Transform, replace and remove elements
  • Partitioning and Sorting
  • Binary search in sorted areas
  • Mixing of sorted areas
  • Set operations on sorted areas

7. Times and calendars with chrono

  • Time and duration
  • clocks

8. Multithreading

  • Starting Functions with async and thread
  • Multithreading with Lambda expressions
  • Exceptions in Threads
  • future and promise
  • Lock critical sections with lock_guard etc.
  • condition variables

9. smart pointer

  • unique_ptr, shared_ptr, weak_ptr


Target group: Software developers who want to program with Microsoft Visual Studio in C++.

Requirements: Knowledge of C++ within the scope of the basic C++ course.

Teaching style: Lecture with many examples. A balanced combination of theory and practice.

  • At the beginning of a new topic, an overview of the application possibilities, basic ideas and syntax is described. The concepts and syntax are then illustrated using carefully selected and proven examples.
  • If the participants want to deepen their knowledge independently: The manuscript contains numerous practical exercises.
  • Flexibility: If it turns out during the seminar that the participants lack the basics or that further topics are desired, I can adapt the agenda to the participants’ wishes at any time.

Manuscript: Detailed printed training material (approx. 200 pages) – Complete text, no PowerPoint slides containing only keywords. Therefore the course material can also be used as a reference at work.

Place and time: This seminar is offered as a company seminar (in-house).

Duration: 5 days
Contact: see here