C++17 im Detail
C++17 im Detail
Zusammenfassung:
Einleitung
Das Buch „C++17 im Detail“ von Bartłomiej Filipek erschien 2019 und wurde sofort zu einer der maßgeblichsten Quellen für den neuen Standard C++17. Es ist kein weiteres Lehrbuch für Anfänger – es ist eine tiefgehende technische Anleitung, die Entwicklern mit mittleren und fortgeschrittenen Kenntnissen hilft, alle wichtigen Funktionen des C++17-Standards zu meistern und sie in der Praxis anzuwenden. Das Buch enthält 338 Seiten konzentrierter Informationen, untermauert mit Codebeispielen und praktischen Tipps.
Worum geht es in diesem Buch?
„C++17 im Detail“ widmet sich der detaillierten Analyse der Neuerungen, die der Standard C++17 mit sich brachte. Der Autor behandelt nacheinander jedes Feature, beginnend mit der Sprache bis hin zur Standardbibliothek. Im Buch finden Sie:
- Strukturierte Bindungen (structured bindings) – wie man Tupel, Paare und Strukturen in einzelne Variablen entpackt.
- if constexpr – Kompilierung von bedingten Zweigen zur Compile-Zeit, was das Schreiben von effizienterem und saubererem Template-Code ermöglicht.
- std::optional, std::variant, std::any – neue Wrapper-Typen für die sichere Arbeit mit optionalen Werten, Alternativen und dynamischen Typen.
- string_view – eine nicht-besitzende Darstellung eines Strings, die die Arbeit mit Teilstrings ohne Kopieren beschleunigt.
- Parallele Algorithmen – die Standardbibliothek unterstützt nun die parallele Ausführung von Algorithmen (std::execution::par).
- Dateisystem (std::filesystem) – plattformübergreifende Arbeit mit Dateien und Verzeichnissen.
- Verbesserungen bei constexpr – jetzt können constexpr-Funktionen mit Schleifen, Verzweigungen und sogar dynamischer Speicherzuweisung (eingeschränkt) geschrieben werden.
- Neue Attribute – [[fallthrough]], [[maybe_unused]], [[nodiscard]] und andere.
- Vereinfachung von Templates – deduction guides, auto in Template-Parametern, fold expressions.
Jedes Kapitel ist nach dem Prinzip „von der Theorie zur Praxis“ aufgebaut: Zuerst werden Syntax und Semantik erklärt, dann folgen reale Anwendungsbeispiele und am Ende typische Fehler und Empfehlungen.
Für wen ist dieses Buch?
Das Buch richtet sich an Programmierer, die bereits Erfahrung mit C++ haben (mindestens auf dem Niveau von C++11/14) und C++17 schnell und gründlich erlernen möchten. Es ist nützlich für:
- Entwickler, die von älteren Standards auf C++17 umsteigen.
- Ingenieure, die hochbelastbare oder eingebettete Systeme schreiben und neue Möglichkeiten zur Optimierung nutzen möchten.
- Dozenten und fortgeschrittene Studenten, die modernes C++ lernen.
- Alle, die sichereren, ausdrucksstärkeren und effizienteren Code schreiben möchten.
Für Anfänger ist das Buch nicht geeignet – zum Verständnis des Materials sind solide Kenntnisse der C++-Grundlagen (Zeiger, Templates, STL) erforderlich.
Was wird der Leser lernen?
Nach der Lektüre des Buches werden Sie in der Lage sein:
- Alle wichtigen Neuerungen von C++17 souverän im Arbeitsalltag einzusetzen.
- Saubereren und prägnanteren Code mit strukturierten Bindungen und if constexpr zu schreiben.
- std::optional und std::variant für die sichere Fehlerbehandlung und alternative Zustände anzuwenden.
- Ohne externe Bibliotheken mit dem Dateisystem zu arbeiten.
- Algorithmen mit parallelen Versionen aus der STL zu beschleunigen.
- Die internen Mechanismen der neuen Typen zu verstehen und Fallstricke zu vermeiden.
- Sich auf den Umstieg auf C++20 vorzubereiten, da viele Features von C++17 die Grundlage für zukünftige Standards bilden.
Stärken des Buches
1. Tiefe und Struktur. Der Autor listet nicht nur Features auf, sondern erklärt, warum sie hinzugefügt wurden, welche Probleme sie lösen und wie man sie richtig anwendet. Jedes Kapitel enthält einen Abschnitt „Common pitfalls“ (typische Fehler), was für den praktizierenden Entwickler sehr wertvoll ist.
2. Praxisorientierung.