Nicolai M. Josuttis: IT-Communication    Training: Modern C++ (C++11/C++14) and its Standard Library

prev up next

Title: Modern C++ (C++11/C++14) and its Standard Library
(combine with the C++17 training)
in German
Audiance: Software developers, programmers
Format: Inhouse workshop with excercises
Background: Programming in C++
Duration: 3 days (less days are possible with restrictions)

The new versions of the C++-Standard, C++11 and C++14 are out and many compilers, such as Visual C++ or GNU g++, already support several or all features of these new standards.

And with C++11, C++ has changed significantly:

  • On one hand, new core language features improve style and performance of C++ significantly: Lambdas, move semantics, rvalue references, several new keywords such as nullptr and noexcept, range-based for loops, initializer lists, auto declarations, scoped enumerations, variadic templates, and "context specific keywords" such as override and final.
  • One the other hand, there are several extension to the standard library: new containers such as hash tables, class array<>, and single-linked lists, new smart pointers, a regex library, a library for random values and distributions, clocks, timers, and last-not-least a concurrency library to portably program multi-threaded applications with threads, mutexes, locks, condition variables and atomic data types.

This training has the goal to teach all important concepts and features of the new standard (core langauge features and libraries). You will understand why C++11 changes the way you programm in C++ and which individual features came with C++11 / C++14.

Well designed practical excercises give the ability to experience the effects of C++11 using different compilers including gcc/g++, Visual C++, and clang.

As well-known expert of C++, author of several books (including the new C++11 edition of "The C++ Standard Library"), and active member of the C++ standardization commitee, Nicolai Josuttis will provide this training with a lot of background information. You will understand the new language features and libraries and the benefit of modern C++ to understand and be prepared for a switch to Modern C++ in commercial software systems.

  • Language features:
    • Uniform initialization and initializer lists
    • Range-based for loops
    • Typenames auto, auto&&, and decltype(auto)
    • Keyword constexpr and the consequences for generic programming
    • Variadic Templates
    • Type Traits
    • Scoped Enumerations
    • Keywords decltype, alignas, override, final, static_assert, =default, =delete
    • Move semantics, the whole story: rvalue references, overloading, value categories (xvalues), universal references
    • Keyword noexcept the consequences for declarations and libraries
    • Lambdas

  • Library features:
    • Effect of new language feature for the STL
    • New standard containers: array, unordered containers, forward lists
    • Smart pointers: shared pointers, weak pointers, and unique pointers
    • Multithreading and concurrency
    • Chrono and ratio (time/duration compile-time/runtime library)
    • Random numbers and distributions
    • Regular expressions
    • other small libraries

Nicolai M. Josuttis is an independent technical consultant with multiple experience about technical management and programming in the telecommunication, traffic, finance, and manufacturing industries. His main focus is to bring software systems into operations.

He has written several books on object-oriented programming and C++, including the including the best selling de-facto standards The C++ Standard Library - A Tutorial and Reference, C++ Templates - The Complete Guide, and C++17 - The Complete Guide.

He is an active member of the C++ Standard Committee since 1996.


In English, this tutorial is only available as inhouse training. Public German trainings are available.


Contact Nicolai Josuttis
Tel.: +49 531 129 8886

Of course, the tutorial can get customized according to your needs. Especially combined with C++17 or a C++ Workshop.

prev up next

Copyright 2021 by Nicolai M. Josuttis
Impressum    Datenschutzerklärung