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:
- Alignment
- 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
|
- Die Thread-Unterstützung der Standardbibliothek
- 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>
- Generische Lambda Ausdrücke
- Deduktion des Funktionsrückgabetyps
- Binäre Literale
- Nummerngruppentrenner in Literalen
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
|
|