oop-trainer.ch


Seminare


C++


Der neue Standard ISO C++ 17


Aufbauend auf einem Grundverständnis von C++ wird in diesem Kurs der neue Standard ISO C++17 vorgestellt. Dabei werden die Änderungen von C++17 gegenüber dem alten Standard ISO C++98 sowie zu C++11/C++14 besprochen. Soweit dies schon möglich ist und eine ensprechende Compilerunterstützung bereits existiert, werden Beispiele des Standards anhand lauffähiger Codes demonstriert.

Themen:

  • Neue Schlüsselwörter für den Umgang mit Typen und Deklarationen:
    • auto
    • decltype
    • using
  • Alignment
    • alignas
    • alignof
  • Das Schlüsselwort nullptr
  • Neue Typen
  • Stark typisierte Enums
  • Enum mit Namensraum
  • Nicht eingeschränkte Unions
  • Konstante Ausdrücke
  • Das neue Schlüsselwort constexpr
  • Unicode Unterstützung
  • Unicode Typen
  • Prefixes
  • Stringliterale
  • Neue Schlüsselwörter für Klassengestaltung
    • override zum kontrollierten Überschreiben von Methoden
    • final zum Finalisieren von Methoden und Klassen
  • Konstruktorvererbung
  • Konstruktordelegation
  • Neue Initialisierungssyntax
  • Initialisierungssequenzen:
    • Der Container std::initializer_list<T>
    • Konstruktoren mit Wertelisten
  • Die R-Value Referenz
  • Der Move-Konstruktor
  • Kopierbarkeit und Bewegbarkeit von Objekten
  • Der Gebrauch von std::move()
  • Forwarding mit std::forward<T>()
  • Type Traits
  • static_assert
  • Die neuen Möglichkeiten der using-Direktive
  • Template aliases
  • Namespace Assoziation
  • Lambdas
  • Nachfolgende Definition von Rückgabetypen
  • Referenzierung des Lambda Aufrufkontextes
  • Kopieren des Lambda Aufrufkontextes
  • Variadic Templates
  • Die Thread-Unterstützung der Standard­bibliothek
  • Die Basismechanismen des Threadings
  • Mutexe
  • Synchronisierung über Bedingungsvariablen
  • Atomare Operationen
  • Atomare Typen
  • Lokaler Threadspeicher
  • Threading mit Lambdas (closures)
  • Futures
  • Smart Pointers
    • std::unique_ptr<T>
    • std::shared_ptr<T>
    • std::weak_ptr<T>
  • Neue Container
    • std::forward_list<T>
    • std::unordered_set<T>
    • std::unordered_map<T>
  • Reguläre Ausdrücke
  • Generische Lambda Ausdrücke
  • Deduktion des Funktionsrückgabetyps
  • Binäre Literale
  • Nummerngruppentrenner in Literalen
  • Das deprecated Attribut
  • Variablen-Templates

Erweiterungen durch C++17

  • if constexpr()
  • Standard Attribute
  • Inline Variablen
  • Strukturiertes Binden
  • Initialisierung in switch- und if-Anweisungen
  • Die Typen
    • std::variant
    • std::any
    • std::optional
  • Parallele Algorithmen
  • Eine Bibliothek für das Dateisystem

Das Seminar führt theoretisch und praktisch in den neuen Standard ein. Nach den theoretischen Abschnitten werden praktische Übungen eingelegt, sodass die Anwendbarkeit der neuen Sprach- und Bibliotheksbestandteile vom Teilnehmer erfahren werden kann.

Aktuelle Compiler unterstützen ISO C++17 bereits ganz gut. Es ist also egal, welcher Compiler zum Einsatz kommt. Er sollte nur aktuell sein. Besonders gute Erfahrungen habe ich mit den GNU oder Clang Compilern unter Lunix und MacOSX gemacht. Aber auch Visual C++ unter Windows unterstützt die Standards heute quasi vollständig und kann im Seminar zum Einsatz gebracht werden.

Anfragen telefonisch unter: +49 179 2292471