Modernes C++: Neuerungen durch C++11 und C++14 bei Sprachsyntax, Bibliothek und Templates (Seminar)

27.06.2017

02.03.2020 - 06.03.2020

Veranstaltungsort: München, MicroConsult

Modernes C++: Neuerungen durch C++11 und C++14 bei Sprachsyntax, Bibliothek und Templates (Seminar)

Lernen Sie alle wesentlichen neuen Features von C++11 & C++14 kennen und setzen Sie diese zum Schreiben von effizienterem und leichter wartbarem Code ein. Enthalten: Einführung in die grundlegenden Prinzipien der Compilezeit-Metaprogrammierung mit Templates uvm.

In diesem C++ Kurs lernen Sie alle wesentlichen neuen Features von C++11 und C++14 kennen, damit Sie diese künftig zum Schreiben von effizienterem und leichter wartbarem Code einsetzen können. Enthalten ist (im Umfang von ca. 1,5 Tagen) eine Einführung in die grundlegenden Prinzipien der Compilezeit-Metaprogrammierung mit Templates, welche durch die "Variadischen Templates" (eingeführt mit C++11) an Mächtigkeit gewonnen hat, deren Implementierung sich wiederum über "Fold Expressions" (geplant für C++1z) deutlich vereinfacht.

INHALT

KLEINE ERWEITERUNGEN

"nullptr", "constexpr", "static_assert"

Neue Formen von String-Literalen

Benutzerdefinierte Literal-Suffixe

Standardisierte Literal-Suffixe [C++14]

Vereinheitlichte Initialisierung

"std::initializer_list"

Neue Return-Typ Syntax

Bereichsbasierte for-Schleifen

Alias-Typdefinitionen

"enum"-Klassen

ERWEITERTE TYP-DEDUKTION

Rvalue-Referenzen und Move-Semantik

auto-Variablen

auto-Funktionsergebnisse [C++14]

"decltype" und "decltype(auto)" [C++14]

LAMBDAS

Grundlagen und Prinzipien

Capture-Listen (Closures)

"Init-Captures" und "Generic Lambdas" [C++14]

Vor- und Nachteile im Vergleich mit

  • Funktionszeigern

  • Funktoren

  • "std::bind"

Kompatibilität zu "std::function"

ERWEITRUNGEN BEI KLASSEN

Sperren und Erlauben von Defaults

Direkte Member-Initialisierung

Konstruktor-Delegation und -Vererbung

"final" und "override"

ERWEITERUNGEN DER STANDARD-BIBLIOTHEK

ash-basierte Container

Erweiterungen bei

  • "std::string"

  • Containern

  • Algorithmen

"std::tuple"

Reguläre Ausdrücke

Zeiten und Zeitpunkte ("std::chrono")

"SMART-POINTER"

std::unique_ptr" (unique ownership)

"std::shared_ptr" (shared ownership)

"std::weak_ptr" (temporary ownership)

Problematik zyklischer Referenzen

Nutzung als RAII-Wrapper ("Custom-Deleter")

Performance und Memory-Footprint

PARALLELISIERUNG VON ABLÄUFEN

"std::async" und "std::future"

Synchronisation mit "std::mutex"

RAII-Stil Wrapper "std::lock"

"Readers/Writer-Locks" [C++14]

"Condition Variables"

Lock-freie Algorithmen

Explizites Thread-Handling

TEMPLATES UND COMPILEZEIT-METAPRGRAMMIERUNG

"constexpr"-Funktionen [C++11 vs. C++14]

"Perfect Forwarding"

Standardisierte Type-Traits

"noexcept" (Spezifikation und Compilezeit-Test)

Variadische Templates

  • Grundlegende Syntax

  • Expansion von Parameter-Packs

Compilezeit-Metaprogrammierung

"Fold-Expressions" [C++1z]

SONSTIGE C++11/14/17 NEUERUNGEN

Generelles Syntax "Clean-Up"

"alignas" und "alignof"

Garbage-Collection API

"Attributes" (inkl. Standard-Attribute)

"Concepts Light" [C++1z]

Begleitend: Mikro-Projekte

Demo-Code und/oder Aufgaben zur eigenen Bearbeitung nach Wahl

Inkl. anschließender Erläuterung möglicher Variationen

----------------------------------------------------------------------------------------------
Teilnehmer:
Dieser C++ Kurs richtet sich an erfahrene Software-Entwickler mit guten C++-Kenntnissen, welche ihr Know-how gezielt ausbauen wollen in Bezug auf die mit den ISO-Standards von 2011 und 2014 eingeführten Neuerungen im Bereich der Sprach-Syntax, der Standard-Bibliothek und der Template-Programmierung.
 

Kundenstimmen - Das sagen bisherige Teilnehmer zu diesem Seminar:

"Ein sehr guter Kurs, der die Neuerungen von C++11, 14 und 17 vorstellt. Auch ein langjähriger C++ Anwender erfährt hier viel Interessantes."

"Referent hat tiefes Fachwissen und hervorragende Didaktik."

"Cooles Training, perfekt mit elektronischen Unterlagen."

"Sehr angenehmer, qualitativ hochwertiger Kurs, bei dem auch auf die Fragen der Teilnehmer ausführlich eingegangen wird."

"Der Fokus wurde sehr gut und dynamisch auf die Kursteilnehmer angepasst."

"Sehr gute Aufarbeitung der Beispiele und spätere Zugriffsmöglichkeit, um den Stoff nochmal im Detail nachzuvollziehen."

"Besonders gut war das interaktive Programmieren."

"Besonders gut hat mir der Bezug zu den Abläufen im Speicher (Hintergründe) etc. gefallen!"

"Atmosphäre sehr angenehm; kompetenter Dozent."