C++20: Das vollständige Handbuch
C++20: Das vollständige Handbuch
Zusammenfassung:
Einleitung
Das Buch „C++20: Das vollständige Handbuch“ (Originaltitel: C++20: The Complete Guide) von Nicolai Josuttis ist nicht nur eine weitere Veröffentlichung über eine Programmiersprache. Es ist ein grundlegendes Werk, das zu Recht als eine der maßgeblichsten Quellen zum C++20-Standard gilt. Das 2022 erschienene Buch mit 476 Seiten deckt alle wichtigen Neuerungen ab, die das Erscheinungsbild der Sprache grundlegend verändert haben. Für die Bildungswebsite PythonLib, die sich auf ein tiefes Verständnis von Technologien konzentriert, wird dieses Buch die ideale Brücke zwischen klassischem C++ und seinem modernen Paradigma sein.
Worum geht es in diesem Buch?
Nicolai Josuttis, bekannt für seine Werke „C++17: The Complete Guide“ und „The C++ Standard Library“, beweist erneut seine Meisterschaft in der Erklärung komplexer Themen. Das Buch widmet sich ausschließlich den neuen Funktionen, die im Standard C++20 eingeführt wurden. Der Autor schreibt die Grundlagen nicht neu, sondern konzentriert sich auf die vier „Säulen“ des Updates: Concepts, Coroutinen (Coroutines), Module (Modules) und Ranges. Darüber hinaus werden weniger umfangreiche, aber wichtige Verbesserungen im Detail behandelt: der Drei-Wege-Vergleichsoperator (operator <=>), Initialisierer in range-based for, verbesserte konstante Ausdrücke (constexpr), neue Attribute und vieles mehr.
Für wen ist dieses Buch?
Diese Ausgabe ist strikt für erfahrene Entwickler. Wenn Sie gerade erst anfangen, C++ zu lernen, oder mit C++11/14/17 nicht vertraut sind, wird Ihnen das Buch schwerfallen. Josuttis setzt voraus, dass der Leser Templates, Lambda-Ausdrücke, Move-Semantik und die Standardbibliothek sicher beherrscht. Das Buch ist ideal geeignet für:
- Programmierer, die von C++17 auf C++20 umsteigen;
- Entwickler von Bibliotheken und Frameworks;
- Softwarearchitekten, die moderne Idiome einführen möchten;
- Lehrende, die über die neuesten Standards auf dem Laufenden bleiben wollen.
Was lernt der Leser?
Nach der Lektüre werden Sie die folgenden Funktionen sicher in der Praxis anwenden können:
- Concepts: Wie man Einschränkungen für Template-Parameter festlegt, um Code selbstdokumentierend zu machen und Fehlermeldungen zu verbessern;
- Coroutinen: Ein Mechanismus zum Schreiben von asynchronem Code, Generatoren und lazy evaluations ohne externe Bibliotheken;
- Module: Ersatz für das veraltete Header-Datei-Modell, Beschleunigung der Kompilierung und Isolation von Code;
- Ranges-Bibliothek: Komposition von Algorithmen im Stil der funktionalen Programmierung, Arbeit mit unendlichen Sequenzen;
- Spaceship-Operator (<=>): Automatische Generierung von Vergleichsoperatoren;
- Erweiterung von constexpr: Ausführung komplexer Berechnungen zur Kompilierzeit (einschließlich dynamischer Speicherzuweisung und virtueller Funktionen);
- Neue Typen und Syntax: char8_t, Initialisierer in for, designated initializers und andere Details, die die tägliche Arbeit vereinfachen.
Stärken des Buches
Das erste, was ins Auge fällt, ist die Struktur. Jedes Kapitel ist einem Feature gewidmet und nach dem Prinzip „vom Einfachen zum Komplexen“ aufgebaut. Josuttis listet nicht nur die Syntax auf, sondern erklärt die Motivation: warum diese Funktion hinzugefügt wurde, welche Probleme sie löst und welche Fallstricke es gibt. Zweitens: die praktische Ausrichtung. Der Beispielcode kann vom GitHub des Autors heruntergeladen werden und funktioniert tatsächlich mit modernen Compilern (GCC, Clang, MSVC). Drittens: die Ehrlichkeit. Der Autor spricht offen über die Unreife einiger Features (z. B. haben Module immer noch eingeschränkte Unterstützung), was vor Enttäuschung beim Kompilierungsversuch bewahrt.
Besondere Erwähnung verdient das Kapitel über Coroutinen. Dies ist wohl das komplexeste Thema in C++20, und Josuttis meistert es glänzend, indem er die interne Struktur des Coroutinen-Frameworks (promise_type, awaitable, awaiter) anhand einfacher Beispiele analysiert.
Empfehlungen
Künstliche Intelligenz in den angewandten Wissenschaften. Medizin
Sicherheit von Rust-Anwendungen: Ein praktischer Leitfaden
DevOps für Java-Entwickler: Ein praktischer Leitfaden
Verständnis von ECMAScript 6
UIKit Apprentice
Hands-on Kotlin Coroutines for Android: Praktischer Leitfaden zu Kotlin Coroutines für Android
Empfehlungen
Künstliche Intelligenz in den angewandten Wissenschaften. Medizin
Sicherheit von Rust-Anwendungen: Ein praktischer Leitfaden
DevOps für Java-Entwickler: Ein praktischer Leitfaden
Verständnis von ECMAScript 6
UIKit Apprentice
Hands-on Kotlin Coroutines for Android: Praktischer Leitfaden zu Kotlin Coroutines für Android