Programmieren mit C++11 bis C++17


Beschreibung

C++ hat sich seit 2011 teils massiv verändert. Es gab drei neue Sprachstandards, 11, 14 und 17. Seit September 2020 gibt es mit C++20 sogar einen Vierten.

Die neuen Elemente erleichtern es uns oft weniger und dafür korrekteren Code zu schreiben. Mit constexpr hat die Sprache eine einzigartige Möglichkeit Dinge bereits zur Compile-Zeit zu erledigen. Unser Bonus: weniger RAM und ROM Verbrauch sowie ein Zeitgewinn.

In dieser Schulung erfahren Sie, wie die neuen Standards Sie unterstützen, schnelleren und robusteren Code zu schreiben.

Inhalt

Nach dem langen Stillstand der Sprache, wurde sie seit 2011 kontinuierlich mit neuen Standards erweitert. Dies bringt wertvolle neue Eigenschaften in C++ die u.a. für den Einsatz in eingebetteten Systemen interessant sind. Die Teilnehmer erhalten das Wissen, wie Sie neue Sprachmittel wie constexpr einsetzen um Code-Größe oder Performance zu optimieren.

Wir beginnen mit neuen Sprachmitteln wie auto, override und der uniformen Initialisierung. Mit diesem Wissen schauen wir weiter in Neuerungen wie constexpr. Selbstverständlich werden auch Lambdas besprochen, eines der lange vermissten Elemente.

Zur Freude von allen begeisterten Template Nutzern schauen wir auf die Neuerung in C++11: variadische Templates.

Ebenso behandeln wir Move-Semantik und analysieren, wann diese uns einen Gewinn bringt. Hier sprechen wir darüber was bei ihrem Einsatz zu beachten ist und in welchen Situationen das Feature vom Compiler deaktiviert wird.

Zum Abschluss schauen wir uns noch einige ausgewählte Neuerungen in der STL an. Sehr interessant für viele C++ Programmierer sind hier die schlauen Zeiger (smart pointer). Aber auch Container wie std::tuple oder std::vector werden behandelt.

Nach der Schulung haben Teilnehmende ein klares Verständnis, was die Neunen Standards bringen. Sie können bewusst Feature aus den neuen Sprachstandards für ein Projekt auswählen und sicher einsetzen.

Agenda

  • Sauberer und moderner C++ Code
  • Uniforme Initialisierung:
    • Initialisierung mit geschweiften Klammern
    • std::initializer_list
  • Neue Elemente:
    • Typermittlung mit auto und Trailing Return Type
    • Range-based for-Schleifen
    • Literal Operator
    • class enum
    • nullptr
    • override
    • final
    • =default, =delete
    • Default Member Initialisierung
    • Geerbte Konstruktoren
    • Structured Bindings
  • Dinge zur Compile-Zeit erledigen:
    • constexpr
    • static_assert
    • constexpr if
  • Lambdas
  • Move Semantik:
    • Rvalue Referenzen
    • std::move
    • Prefect Forwarding
    • Die Regel der 0 / 3 / 5 / DesDeMovA
  • Template-Neuerungen:
    • Variadische Templates
    • Alias Template mit using
    • Fold Expressions
    • Class Template Argument Deduction
  • Ausgewählte Updates der STL:
    • Schlaue Zeiger
    • std::array
    • std::tuple
    • Type-Traits
    • Die Zeit im Griff mit chrono
    • Ein Blick in den algorithm Header

Mit dem Kurs erhalten Sie

  • Ein qualitativ hochwertiges Handout als farbiges PDF, das alle Verweise und eine Liste der Akronyme enthält. Sodass Sie nach dem Training jederzeit nachlesen können.
  • Den Quell-Code für die Übungen inklusive Musterlösungen als ZIP-Datei.
  • Teilnahmebescheinigung für Ihren Lebenslauf.
  • Eins meiner Bücher kostenlos, damit Sie Ihr Wissen vertiefen können.

Informiert bleiben

Von Zeit zu Zeit biete ich eine offene Schulung an. Diese findet aktuell online via Zoom über 5 Tage jeweils ca. 16:00 - 20:00 statt. Bei Interesse können Sie sich für Updates dazu hier eintragen.

Diese Felder sind erforderlich.