Modernes C++: Wenn es auf Effizienz ankommt


Beschreibung

Obwohl wir in einer Zeit leben, in der Computer immer mehr Ressourcen haben, gibt immer noch Systeme, bei denen Speicher, CPU oder andere Hardware eingeschränkt sind.

Um auch für solche Projekte guten Code zu erhalten, ist es hilfreich zu wissen, wie bestimmte Funktionen in C++ funktionieren. In dieser Klasse sprechen wir über die neuen Funktionen seit C++11 und wie sie in Code übersetzt werden.

Dies gibt Ihnen ein gutes Verständnis dafür, was jede Funktion kostet. Dazu verwenden wir C++ Insights (cppinsights.io) und den Compiler Explorer (godbolt.org), um einen Einblick in die Welt des Compilers zu erhalten.

Neben der Steuerung des resultierenden Codes werden wir auch versuchen, Dinge mit weniger Code zu implementieren. Dies hilft, die Personalressourcen bei Wartung und Debugging zu schonen.

Falls wir am Ende Zeit haben, werden wir einen kurzen Blick hinter die Coroutinen von C++20 werfen.

Agenda

  • Compile-time vs. run-time
  • Überraschungen bei der Typ-Ermittlung
  • Range-based for-loops
  • noexcept
  • Was ist eine std::initializer_list
  • Grenzen Sie den Bereich einer Variablen ein: if / switch mit Initialisierung
  • Konstruktorvererbung und ihre Falle
  • Initialisierung von Mitgliedern in der Klasse
  • Lambdas: Generische sowie Lambdas mit Template-Kopf (eine Vorschau auf C ++ 20)
  • Lambda captures: Wissen, was erfasst wird
  • Structured bindings
  • Variadische Templates
  • Recursive variadische Templates vs. Fold-Expressions
  • CTAD (Class template argument deduction)
  • Wie eine lokale nicht triviale statische Variable funktioniert
  • Move-Semantik
  • Kennen Sie die Kosten der Abstraktion: shared-/unique-ptr
  • Coroutinen (Optional)

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.