Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Modernes C++: Neuerungen durch C++11 und C++14 bei Sprachsyntax, Bibliothek und Templates
»NEUES TRAINING«

  • 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 Teilnahmezertifikat


Für Personalabteilungen

Sie können in unserem Online-Formular bis zu 5 Teilnehmer auf ein Training buchen.
Möchten Sie mehrere Teilnehmer auf verschiedene Trainings buchen, kontaktieren Sie uns bitte!

Bitte beachten Sie auch unser Bonusprogramm bei der gleichzeitigen Buchung von mehreren Trainings und/oder Teilnehmern.

Für Personalabteilungen

Verwandte Trainings

C++ Kurs: Objektorientierte Programmierung mit C++
Trainings-Code: C++

C++ für Fortgeschrittene: Erweiterte Nutzung gemäß ISO-Standard (C++11/C++98)
Trainings-Code: C++/FOR

C++11 Multithreading
Trainings-Code: C++11-MT

C++ Quick Refresh: Schnelleinstieg/Auffrischung
Trainings-Code: C++/REF

C++: Standard- und Boost-Library Workshop
Trainings-Code: C++/LIB

C++ Standard Template Library: STL Container und Algorithmen
Trainings-Code: C++/STL

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


Verwandte Trainings

Offenes Training

TerminPreis *Dauer
17.07. – 21.07.20171.980,00 €4,5 Tage 
09.10. – 13.10.20171.980,00 €4,5 Tage 
22.01. – 26.01.20181.980,00 €4,5 Tage 
16.04. – 20.04.20181.980,00 €4,5 Tage 
Anmeldecode: C++/MOD
* Alle Preise zzgl. der gesetzlichen USt.


> Download Blanko-Anmeldeformular
> Trainingsbeschreibung als PDF

Inhouse 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.

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.

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

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.