C++11/C++14 Neuigkeiten mit Visual Studio 2015

C++ mit Visual Studio 2015 – C++11/C++14 Neuigkeiten für C++-Entwickler

Visual Studio 2015 enthält eine Vielzahl von Neuerungen für C++-Entwickler: Einerseits wurde die Entwicklungsumgebung stark weiterentwickelt, andererseits wurden die C++11-Erweiterungen nahezu vollständig übernommen, außerdem zahlreiche neue Sprachelemente von C++14 und C++17. Diese Erweiterungen werden in diesem Seminar umfassend und kompakt vorgestellt. Da viele Firmen noch mit einer älteren Version von Visual Studio arbeiten, werden auch die Neuerungen von Visual Studio 2012 und 2013 berücksichtigt.

 

Inhalt

1. Neues in der Entwicklungsumgebung

Neuerungen im Editor, Refactoring, Debugger, Projektmappen-Explorer usw.

2. C++-Erweiterungen: core features

__cplusplus und Makros für die verschiedenen Compiler
Die Datentypen long long und unsigned long long
Das Nullzeiger-Literal nullptr
>> bei Templates
Makros mit … (Variadic Macros)
Binäre Literale und Trennzeichen
Stark typisierte Aufzählungstypen (enums)
constexpr
Typ-Inferenz: Implizite Typzuweisungen mit auto und decltype
Die bereichsbasierte (range-based) for-Schleife
Initialisiererlisten
Explizite Konstruktoren und Konversionsfunktionen
R-Wert Referenzen, Move-Semantik std::move
Move-Semantik Standardbibliothek
Move-Semantik für eigene und abgeleitete Klassen
Perfect forwarding
Compile-time assert: static_assert

3. Erweiterungen für Klassen

override, final, erweiterte friend-Deklarationen
Delegierende Konstruktoren und implizit erzeugte Konstruktoren
Initialisierer für nicht statische Datenelemente

4. Funktionsobjekte und Lambda-Ausdrücke

Der Aufrufoperator (), Prädikate und arithmetische Funktionsobjekte
Binder, Funktionsadapter
Der function-wrapper std::function
Lambda-Ausdrücke

5. Erweiterungen der Standardbibliothek (STL)

Move-Semantik und Optimierung auf der Basis von type traits
Erweiterungen für Strings
Die Stringklassen u16string und u32string
Konversionsfunktionen
„raw string“ Literale, Unicode String Literale
Erweiterungen für Container-Klassen
Iteratoren, Speicherverwaltung bei Vektoren, emplace für Container
Erweiterungen für Stream-Klassen
Ungeordnete Assoziative Container (Hash-Container)
Reguläre Ausdrücke
Fixed Size Array Container
Tupel
Zufallszahlen
Neue Algorithmen
Die Exception-Klasse system_error
Filesystem

6. Templates

Funktions-Templates
Klassen-Templates
Variadische Templates

7. Smart Pointer

unique_ptr
shared_ptr
weak_ptr
exception_ptr

8. Multithreading

Die Klasse thread
Funktionen und Lambda-Ausdrücke als Threads starten
Exceptions in Threads
Eine Exception mit promise weitergeben
Kritische Abschnitte, Mutexe und lock_guard
Atomare Datentypen
“test-and-set” Operationen mit atomic_flag
Deadlocks vermeiden
Thread-lokale Variablen
Futures, Promises und async
Bedingungsvariablen zur Synchronisation von Threads

Organisatorisches:

Zielgruppe: Erfahrene C++ Programmierer, die den neuesten Stand von C++ lernen wollen.

Voraussetzungen: Gute C++-Kenntnisse

Methodik: Vortrag mit vielen Übungen, in denen die Teilnehmer praxisnahe Programme entwickeln.

Manuskript: Ausführliche und detaillierte Schulungsunterlagen (ca. 200 Seiten)

Ort und Zeit: Dieses Seminar wird als Firmenseminar (inhouse) angeboten.

Dauer: 3-5 Tage

Dozent: Prof. Richard Kaiser führt seit vielen Jahren Seminare für Firmen durch, vor allem über Software-Entwicklung und die Programmiersprachen C#/C++/C. Er ist der Verfasser der Bücher „C++ mit Microsoft Visual C++ 2008“ und „C++ mit dem Borland C++Builder“ und ist Mitglied im DIN Normierungsausschuss Informationstechnik NI-22.

Weitere Seminare von Prof. Kaiser finden Sie bei der Technischen Akademie Esslingen.

Beurteilungen der Seminare durch die Teilnehmer finden Sie hier.

Kontakt: Richard Kaiser, Schwärzlocher Straße 53, 72070 Tübingen, .img, .img@.img