About us

Information & Contact

Languages

User login

Search

Search this site:

Search this site:

Advanced Modern C++ Training

Boost Your Productivity with Modern C++
Now with C++17

by Peter Gottschling

Mastering C++ is an intriguing challenge that can be utterly satisfactory. This complex, multi-paradigm language allows us to write software of highest performance with well-structured and smoothly growing programs. The power of C++ was tremendously raised with the new features of C++11 and C++14 such as type deduction, lambdas, rvalues, initializer lists – to name only a few. And C++17 will add some more interesting feature like folding and structured binding.

Brainstorming on future C++ with Bjarne Stroustrup

To tackle this challenge, I offer this intensive training mainly based on my book “Discovering modern C++”. Within three or four days, you will see, discuss, and apply a wide spectrum of advanced features and dive into the world of modern C++ programming.

Target Audience

The course is designed for software developers who aim for excellent software characterized by intuitive interfaces and maximal performance. There is a chance that after this seminar you are still not a perfect C++ programmer. My goal for this week is that you can afterwards program perceivably more productively. That your programs are usable more flexibly and nonetheless explore the hardware as efficiently as possible. That your software becomes clearer and simpler and thus more readable and more maintainable. That the cooperation with your team will also be more productive.

Prerequisites

Basic knowledge in C++ and experience in practice are required.

Topics

New techniques

Range-based for-loops (C++11)

RValues and move semantics (C++11)

Initializer lists (C++11)

{} vs. ()? (C++11)

Folding (C++17)

Templates (generic programming)

Function templates

Class templates

Variadic Templates (C++11)

Concepts (C++20?) (*)

Specialization

Template arguments that are not types

Functors

Safe downcast without overhead (*)

Type deduction in detail

Template arguments

auto (C++11)

Structured binding (C++17)

decltype (C++11)

decltype(auto) (C++14)

Deduced return type (C++14)

Deduced class types (C++17)

Lambda (C++11)

Foundations

Generic lambdas (C++14)

Extended capture (C++14)

Standard Template Library

Iterator concept

Containers (partially C++11)

Functions (partially C++11)

Concurrent algorithms (C++17)

Meta-programming

Let the compiler compute (*)

Providing type informations

Expression templates

constexpr if (C++17)

(*) These topics are omitted or significantly shortened in three-day courses. Other topics are discussed in less detail during shorter courses.

Free Consulting Included

As extra service I offer you—interest and non-disclosure of company secrets provided—to discuss and refactor your own software (as far as time allows). We will not aim for the perfect program but consider for real-world software examples various implementation options and discuss their adventages and disadvantages. (Not included in 3-day training.)

Trainer

Peter Gottschlingis the author of the advanced C++14 book "Discovering Modern C++", the Matrix Template Library 4, co-author of the Boost Graph Library and other scientific libraries. He is vice-chair of DIN's programming language group and was (the last) head of the German delegation in the ISO committee for C++ standardization. He is managing director of SimuNova and taught C++ in numerous profesional trainings and academically at TU Dresden, TU Berlin and Indiana University.