C++11/14 mit Visual Studio 2017

C++11/14 mit Visual Studio 2017

Ein C++-Seminar für Software-Entwickler, die die C++11/14 Erweiterungen mit Visual Studio 2017 professionell einsetzen wollen. Von Prof. Richard Kaiser.

C++ wurde in den letzten Jahrfen stark erweitert. Der neue Standard wird als C++11/14 bezeichnet und macht die Programmierung mit C++ einfacher, sicherer, eleganter und effizienter. Zu den Erweiterungen gehören

  • neue Sprachelemente wie Initialisiererlisten (die Initialisierungen vereinfachen und auf Typsicherheit prüfen), Lambda-Ausdrücke (die callback-Funktionen und die Verwendung von STL-Algorithmen vereinfachen), Vereinfachungen bei der Definition von Klassen, sicherere Konversionen, Move-Semantik (die schneller ist) usw.
  • neue Klassen der Standardbibliothek (STL) wie schnellere Hash-Container, smart pointer (die oft Speicherlecks vermeiden), Multithreading-Klassen (für die parallele Ausführung von Threads), Unicode-Strings usw.

Diese Erweiterungen sind in Visual Studio 2017 nahezu vollständig aufgenommen. Sie werden in diesem Seminar zusammen mit den Erweiterungen der Entwicklungsumgebung umfassend und kompakt vorgestellt.

 

Inhalt

1. Neues in der Entwicklungsumgebung

Neuerungen im Editor, Refactoring, Debugger, Projektmappen-Explorer usw.

2. C++-Erweiterungen: core features

  • Die Datentypen long long und unsigned long long
  • Das Nullzeiger-Literal nullptr
  • Binäre Literale und Trennzeichen
  • Stark typisierte Aufzählungstypen (enums)
  • constexpr
  • Typ-Inferenz: Implizite Typzuweisungen mit auto und decltype
  • Die bereichsbasierte (range-based) for-Schleife
  • Initialisiererlisten
  • Explizite Konstruktoren und Konversionsfunktionen
  • Move-Semantik
    • R-Wert Referenzen
    • In der Standardbibliothek
    • In eigene Klassen implementieren
  • Compile-time assert: static_assert
  • Erweiterungen für Klassen
    • override, final, erweiterte friend-Deklarationen
    • Die Angaben =delete und =default
    • Delegierende Konstruktoren und implizit erzeugte Konstruktoren
    • Initialisierer für nicht statische Datenelemente
  • Makros mit … (Variadic Macros)

3. Funktionsobjekte und Lambda-Ausdrücke

  • Der Aufrufoperator (), Prädikate und arithmetische Funktionsobjekte
  • Binder, Funktionsadapter
  • Der function-wrapper std::function
  • Lambda-Ausdrücke

4. Templates und die STL

  • Generische Funktionen: Funktions-Templates
  • Generische Klassen: Klassen-Templates
  • Type Traits
  • Typ-Inferenz in Templates mit decltype

5. STL-Algorithmen und Lambda-Ausdrücke

  • Die verschiedenen Arten von Iteratoren
  • STL-Algorithmen mit Lambda-Ausdrücken einsetzen

6. Erweiterungen der Standardbibliothek (STL)

  • Move-Semantik und Optimierung auf der Basis von type traits
  • Erweiterungen für Strings
  • Die Stringklassen u16string und u32string
  • Konversionsfunktionen
  • „raw string“ Literale, Unicode String Literale
  • Erweiterungen für Container-Klassen
  • Iteratoren, Speicherverwaltung bei Vektoren, emplace für Container
  • Erweiterungen für Stream-Klassen
  • Ungeordnete Assoziative Container (Hash-Container)
  • Reguläre Ausdrücke
  • Fixed Size Array Container
  • Tupel
  • Zufallszahlen
  • Neue Algorithmen
  • Die Exception-Klasse system_error
  • Filesystem

7. Smart Pointer

  • unique_ptr
  • shared_ptr
  • weak_ptr
  • exception_ptr

8. Multithreading

  • Die Klasse thread
  • Funktionen und Lambda-Ausdrücke als Threads starten
  • Exceptions in Threads
  • Eine Exception mit promise weitergeben
  • Kritische Abschnitte, Mutexe und lock_guard
  • Atomare Datentypen
  • Deadlocks vermeiden
  • Thread-lokale Variablen
  • Futures, Promises und async
  • Bedingungsvariablen zur Synchronisation von Threads
Beurteilungen von Teilnehmern dieses Seminars:

Organisatorisches:

Zielgruppe: Erfahrene C++ Programmierer, die den neuesten Stand von C++ lernen wollen.

Voraussetzungen: Gute C++-Kenntnisse

Methodik: Vortrag mit vielen Übungen, in denen die Teilnehmer praxisnahe Programme entwickeln.

Manuskript: Ausführliche und detaillierte Schulungsunterlagen (ca. 200 Seiten)

Ort und Zeit: Dieses Seminar wird als Firmenseminar (inhouse) angeboten.

Dauer: 3-5 Tage

Dozent: Prof. Richard Kaiser führt seit vielen Jahren Seminare für Firmen durch, vor allem über Software-Entwicklung und die Programmiersprachen C#/C++/C. Zu seinen Kunden gehören renommierte Weltkonzerne und kleine und mittelständische Unternehmen. Er ist der Verfasser der Bücher „C++ mit Visual Studio 2017“ und „C++ mit Microsoft Visual C++ 2008“. Er war viele Jahre Mitglied im DIN Normierungsausschuss Informationstechnik NI-22.

Öffentliche Seminare von Prof. Kaiser finden Sie bei der Technischen Akademie Esslingen.

Beurteilungen der Seminare durch die Teilnehmer finden Sie hier.

Kontakt: Richard Kaiser, Schwärzlocher Straße 53, 72070 Tübingen, .img, .img@.img