Workshoptag am Freitag, den 16. Oktober von 9 bis 17 Uhr

**Wählen Sie auf der Anmeldeseite, ob Sie virtuell oder präsenz teilnehmen möchten.



Moderne C++ Design Patterns

Klaus Iglberger

C++ Design Patterns haben sich über Jahrzehnte als sinnvolles Hilfsmittel erwiesen, um robuste, entkoppelte Systeme zu entwickeln. Allerdings hat sich in den letzten Jahren die Art und Weise, wie wir C++ verwenden, über Design nachdenken und Lösungen entwickeln, zutiefst verändert. Dieser Kurs erforscht modernes C++ Design und die modernen Formen der klassischen Design Patterns. Es vermittelt die wichtigsten Richtlinien und Regeln für nachhaltiges, wartbares und modernes Design, das in Hinblick auf Kopplung, Benutzerfreundlichkeit und Performance dem alten Design überlegen ist. Unter anderem wird es die folgenden Fragen beantworten:

- Wie sieht guter C++ Code mit einem Minimum an Abhängigkeiten aus?
- Warum versagt klassisches, auf Vererbungshierarchien basiertes C++ Design so häufig?
- Welche Vorteile bietet Design basierend auf "Value Semantics"?
- Wie werden die klassischen Design Patterns in modernem C++ realisiert?
- Was sind die Alternativen zu den klassischen Design Patterns?

Nach diesem Kurs werden die Teilnehmer ...
- ... einen Eindruck von den modernen Alternativen der klassischen Design Patterns haben;
- ... Wissen über die neuesten Design-Techniken gewonnen haben;
- ... verstehen, wie std::function, std::any, und Ranges funktionieren;
- ... die üblichen Fallstricke bei Vererbungshierarchien vermeiden;
- ... die Wichtigkeit der "Value Semantics" verinnerlicht haben.

Inhalt:
- (De-)Motivation: Die Risiken von Vererbungshierarchien
- Klassische Design Patterns (Command, Prototype, Strategy, Observer, Visitor, Factory, Decorator, Template Method)
- Moderne C++ Design Patterns (Type Erasure, Expression Templates, Policy Based Design, CRTP)

Jetzt anmelden

C++ Move-Semantik im Detail

Nicolai Josuttis

Mit C++11 wurde Mode-Semantik als ein zentrales Thema eingeführt.
Auch wenn dieses Thema "unter der Haube" in erheblichem Umfang genutzt wird, besteht bei vielen Programmierern immer noch ein "ungesundes Halbwissen" dazu. Und da Move-Semantik selbst die Programmierung von einfachsten Klassen mit String-Membern oder Containern beeinflusst, wird damit das Potential für bessere Performance regelmäßig verschenkt.

Dieser Workshop gibt einen Einblick in die Geheimnisse der Move-Semantik und zeigt auf welchen Ebenen man am besten wie davon profitiert. Nach einer ersten Einführung werden die wichtigsten Themen mit den dafür vorgesehenen Sprachmitteln im Detail erläutert. Themen: rvalue referenzen, move(), forward<>(), auto&&, decltype(auto), noexcept, xvalues, move-only Typen.


C++11/14/17/20 in Visual Studio 2019

Richard Kaiser

C++ hat sich in den letzten Jahren rasant entwickelt: C++11, C++14, C++17 und C++20 haben viele Verbesserungen und neue Möglichkeiten gebracht. Vieles, was vor 10 Jahren noch gut und empfehlenswert war, kann heute besser und sicherer gemacht werden. Dieser Workshop gibt einen kompakten Überblick über die wichtigsten C++-Neuerungen seit C++11. Themen wie Initialisierungslisten, override, constexpr, Move-Semantik, Lambda-Ausdrücke, Smart Pointer, variadische Templates, Multithreading, parallele Algorithmen, Module (C++20) usw. werden umfassend dargestellt und an Beispielen illustriert.


Änderungen vorbehalten