oop-trainer.ch


Seminare


C++


Der neue Standard ISO C++ 11


Aufbauend auf einem Grundverständnis von C++ wird in diesem Kurs der neue Standard ISO C++11 vorgestellt. Dabei werden die Änderungen von C++11 gegenüber dem alten Standard ISO C++98 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

Ergänzungen durch C++14

  • Generische Lambda Ausdrücke
  • Deduktion des Funktionsrückgabetyps
  • Binäre Literale
  • Nummerngruppentrenner in Literalen
  • Das deprecated Attribut
  • Variable Templates

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.

Der neue Standard wird jedoch noch von keinem Compiler voll unterstützt, weshalb nicht jedes Thema mit praktischen Beispielen demonstriert werden kann. Die meisten neuen Sprachmerkmale werden durch den neuesten GCC Compiler geboten. Aber auch die aktuelle Version des Visual C++ Compilers von Microsoft setzt den Standard bereits zu einem grossen Teil um. Insofern ist es naheliegend einen der genannten Compiler für das Seminar zu wählen. Es kann allerdings auch ein beliebiger anderer C++ Compiler zum Einsatz gebracht werden, wenn es gewünscht wird.

Anfragen telefonisch unter: +49 179 2292471