Das Seminar zu C++11 und C++14
Aufbauend auf einem Grundverständnis von C++ wird in diesem Kurs der Standard dieser Programmiersprache ISO/IEC 14882:2011 (vereinfacht ISO C++11 oder C++11) und der erweiterte Standard ISO/IEC 14882:2014 (vereinfacht ISO C++14 oder C++14) vorgestellt. Dabei werden die Änderungen der neuen Standards gegenüber den alten ISO C++98 und ISO C++03 besprochen. Die Neuerungen werden anhand lauffähiger Beispiele im Seminar demonstriert und eingeübt.
Die folgenden Themen werden durchgenommen:
-
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
- Enums mit Namensräumen
- 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 Methodenfinal
zum Finalisieren von Methoden und Klassen
- Konstruktorvererbung
- Konstruktordelegation
- Neue Initialisierungssyntax
- Initialisierungssequenzen:
- Der Container
std::initializer_list<T>
- Konstruktoren mit Wertelisten
- Der Container
- Die R-Value Referenz
- Der Move-Konstruktor
- Kopierbarkeit und Bewegbarkeit von Objekten
- Der Gebrauch von
std::move()
- Die Anwendung von
std::forward<T>()
in Templates
- 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 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>
- 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 - Komplexere
constexpr
Funktionen - Variablen 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 getestet werden kann.
Die aktuellen Versionen der üblichen Produktivcompiler unterstützen den C++14 Standard meistens. Die beste Unterstützung liefert der Clang C++ Compiler knapp gefolgt vom GNU C++ Compiler. Aber auch Visual C++ bietet ab der Version 2015 eine ausreichende Umsetzung des Standards, um ihn im Seminar einsetzen zu können. Das im Seminar eingesetzte Betriebssystem ist unerheblich. Üblicherweise ist es Linux, Windows oder MacOSX.
Zuletzt geändert am 10.07.2021