C++17-Features trickreich kombinieren

Nicolai Josuttis

C++17 ist ein Sammelsurium von vielen kleinen Verbesserungen an der Sprache und der Bibliothek von C++. Wie mächtig dieser Umstieg ist, merkt man aber erst, wenn man all die neuen Features miteinander kombiniert.
Dieser Vortrag zeigt an einigen konkreten Beispielen auf, wie die Kombination von C++17-Features zu einer bemerkenswert verbesserten Programmierung führen kann. Er weist aber gleichzeitig auch auf die ein oder andere damit verbundene Gefahr hin.

C++20 - Die Revolution geht weiter

Rainer Grimm

Mit C++20 steht wieder ein richtiger großer C++-Standard vor der Tür. Concepts, Contracts, die Ranges Bibliothek, Coroutinen und Module werde die Art und Weise, wie wir modernes C++ programmieren, grundlegend neu definieren.
Concepts sind eine Erweiterung von Templates von C++, mit denen sich semantische Kategorien für die Menge der zulässigen Datentypen definieren lassen. Dank Concepts wird das Anwenden und Definieren von Templates deutlich einfacher und ausdrucksreicher.
Contracts definieren Interfaces für Funktionen. Dies Interfaces können aus Vorbedingungen für die Funktionsargumente, Nachbedingungen für das Ergebnis einer Funktion und Zusicherungen während der Ausführung der Funktion bestehen.
Die Ranges Bibliothek erlaubt es, die Algorithmen der Standard Template Library direkt auf den Container anzuwenden, diese mit dem aus der Unix-Shell bekannten Pipe-Operator zu verknüpfen und diese auf unendlichen Datenströmen zu definieren. Mit Couroutinen unterstützt C++20 die asynchrone Programmierung. Damit werden sich in C++20 kooperatives Multitasking, unendliche Datenströme, Event-Schleifen oder auch Pipelines elegant umsetzen lassen.
Module stellen eine Alternative zu Header-Dateien dar und versprechen viele Verbesserung. Die Trennung von Header- und Sourcecodedateien aufzulösen, Präprozessor-Anweisungen zu eliminieren, bessere Kompilierungszeiten zu erzielen und einfacher Pakete zu schnüren.

Debugging C++ Apps mit Beispielen

Matthias Wedemeyer

Fehlersuche ist nach wie vor ein Thema. So gut wie keine Software ist fehlerfrei und die Suche nach einem Fehler kann Minuten, Stunden oder auch Tage in Anspruch nehmen. Gerade bei Fehlern, deren Suche längere Zeit in Anspruch nimmt ist eine gute Vorbereitung und erweiterte Techniken der Fehlersuche entscheidend für den Erfolg. Anhand von verschiedenen Fehlersituationen zeigt diese Session, mit welchen Techniken bei der Fehlersuche vorgegangen werden kann und mit welchen Vorbereitungen in Code selbst die Suche nach Fehlern effektiver gestaltet werden kann.

Fachliche Mandantenfähigkeit in C++ Anwendunge

Matthias Wedemeyer

Schreiben Sie Software, mit welcher Ihre Kunden verschiedene Mandanten/Kunden/Vertriebe verwalten? Benötigen Ihre Kunden in Ihrer Software verschiedene Lösungen für ihre Mandanten? Und Sie wollen keinen Code der Form „wenn Mandant gleich 1 mach dies, wenn Mandant = 2 mach jenes"? Dann sind Sie in dieser Session genau richtig. Wir stellen Ihnen eine Lösungsmöglichkeit vor, wie Sie fachliche Unterschiede zwischen Mandanten abbilden und zugleich neue Mandanten ergänzen können, ohne die bestehende Implementierung anzufassen. Machen Sie Ihre Anwendungen nicht nur technisch sondern auch fachlich Mandantenfähig.

Parallelität mit OpenMP in C++

Michael Klemm

OpenMP?  Ist das nicht dieses Programmiermodell mit Compiler-Direktiven aus dem letzten Jahrtausend?  Wenn Sie das glauben, dann ist dieser Vortrag genau das richtige für Sie.  OpenMP ist seit 1997 das Programmiermodell der Wahl für die Parallelisierung von Anwendungen und Algorithmen aus unterschiedlichsten Bereich, insbesondere aber im High Performance Computing.  Im letzten Jahrzehnt hat sich das Programmiermodel von OpenMP stark verändert.  Mit einem mächtigen Tasking-Modell und heterogener Programmierung haben modernste Programmierkonzepte in OpenMP Einzug gehalten.  In diesem Vortrag zeigen wir, welche Evolution sich bei OpenMP vollzogen hat und zeigen anhand einfacher Beispiele, die Funktionsweise der neuen OpenMP-Direktiven.  Als Schmankerl für C++-Programmierer zeigen wir einen Ausblick auf die derzeit in Entwicklung befindliche OpenMP-Syntax mit C++-Attributes.  Der Vortrag schließt mit einem kurzen Ausblick auf die Zukunft von OpenMP.

Declarative Programming in C++

Frank Mertens

QML führte ein neues Konzept für die Codierung beeindruckender interaktiver Benutzeroberflächen ein: deklaratives Programmieren. Mit dem Aufkommen und der Einführung von C ++ 11 (oder neuer) können die in QML-Anwendungen verwendeten Konzepte ohne großen Aufwand direkt in C ++ verwendet werden. Der Vortrag wird die grundlegenden Konzepte der deklarativen Programmierung (Eigenschaften und Bindungen) vorstellen und zeigen, wie diese Konzepte direkt in C ++ angewendet werden können.

Tour of Windows Defenses

T. Roy

The Windows PC continues to be the primary productivity device in enterprises small and large alike. Due to its ubiquity, the Windows desktop remains the preferred platform for attackers to gain initial foothold into an organization. Microsoft has been busy adding defenses to the platform as the security posture of the Windows PC remains of paramount importance to organizations worldwide. This talk will the you through a whirlwind tour of the defenses that have been added to Windows from Windows XP all the way through to the latest version of Windows 10 to improve the security of applications. Learn about the meaning of acronyms such as DEP, ASLR, ACG, ASR, CFG, CET etc. and the types attacks they are designed to thwart.



Änderungen vorbehalten