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)
   
Contents:

Modern C++, introduced with C++11 and extended with C++14 (and later C++17), is more and more established as the "new" way to program in C++.

And Modern C++ has changed programming 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 teaches all important concepts and features of Modern C++ (core language features and libraries). You will understand why C++11 changes the way you program in C++ and which individual features came with C++11 / C++14.

Well designed practical examples and some exercises 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 C++ Standard Library", "C++ Templates", "C++ Move Semantics"), 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.

   
Topics:
  • 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
Trainer:

Nicolai M. Josuttis is an well-known international author, trainer, speaker, and expert of C++.

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, C++17 - The Complete Guide, C++20 - The Complete Guide, and C++ Move Semantics - The Complete Guide.

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

   
Public:

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

   
Inhouse:

Contact Nicolai Josuttis
Tel.: +49 531 129 8886
E-Mail: training@josuttis.com

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

prev up next


Copyright 2024 by Nicolai M. Josuttis
Impressum    Datenschutzerklärung