Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

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

  • Inhalt
     
  • Ziele -
    Ihr Nutzen
  • Teilnehmer
     
  • Voraussetzungen
     

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.

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.

Umfangreiche und durch entsprechende Praxis untermauerte Erfahrungen mit C++98. Hinweis: Dieses Training eignet sich NICHT zur Auffrischung von Grundkenntnissen oder seit längerer Zeit nicht (mehr) praktisch angewandter C++-Kenntnisse.

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/1z 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

Im Preis enthalten:
Mittagessen, Getränke, Trainingsunterlagen und Ihr Teilnahmezertifikat


ALL INCLUSIVE!

Verwandte Trainings

C++ Kurs: Objektorientierte Programmierung mit C++
Anmeldecode: C++

C++ Schulung für Fortgeschrittene: Weiterführende Programmiertechniken für C++ Entwickler
Anmeldecode: C++/FOR

C++: Standard- und Boost-Library Workshop
Anmeldecode: C++/LIB

C++ Standard Template Library: STL Container und Algorithmen
Anmeldecode: C++/STL

C++11 Multithreading
Anmeldecode: C++11-MT

OOP-Grundlagen: Sprachunabhängiger Einstieg in die objektorientierte Programmierung
Anmeldecode: OOP-G


Verwandte Trainings

Offenes Training

TerminPreis *Dauer
02.03. – 06.03.20202.250,00 €4,5 Tage 
15.06. – 19.06.20202.250,00 €4,5 Tage 
05.10. – 09.10.20202.250,00 €4,5 Tage 
14.12. – 18.12.20202.250,00 €4,5 Tage 
08.03. – 12.03.20212.250,00 €4,5 Tage 
Anmeldecode: C++/MOD
* Preis je Teilnehmer, in Euro zzgl. USt.


> Download Blanko-Anmeldeformular
> Trainingsbeschreibung als PDF

Onsite-Training

In maßgeschneiderten Workshops kombinieren wir Ihre konkreten Projektaufgaben mit unserem Trainingsangebot. Dabei berücksichtigen wir Ihre Anforderungen bezüglich Inhalt, Zeit, Ort, Dauer, technischem Umfeld und Vermittlungsmethodik.

Für Ihre Anfrage oder weiterführende Informationen stehen wir Ihnen gern zur Verfügung.

> Trainingsbeschreibung als PDF

Coaching

Unsere Coaching-Angebote bieten den großen Vorteil, dass unsere Experten ihr Wissen und ihre Erfahrungen direkt in Ihren Lösungsprozess einbringen und damit unmittelbar zu Ihrem Projekterfolg beitragen.

Coaching: Embedded- und Echtzeit-Programmierung

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

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/1z 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

Merkzettel


Sie haben derzeit keine Trainings auf dem Merkzettel.