Modernes C++ entdecken
Modernes C++ entdecken
Zusammenfassung:
Einleitung
Das Buch „Modernes C++ entdecken“ (Originaltitel Discovering Modern C++) von Peter Gottschling ist keine weitere Einführung in die Sprache, sondern ein umfassendes Lehrbuch für diejenigen, die bereits mit den Grundlagen von C++ vertraut sind und dessen moderne Möglichkeiten erlernen möchten. Die Ausgabe von 2021 deckt die Standards C++11, C++14, C++17 und C++20 ab, was es zu einem der aktuellsten Leitfäden der heutigen Zeit macht. Der Umfang des Buches beträgt 608 Seiten mit dichtem, aber gut strukturiertem Material.
Worum geht es in diesem Buch?
Das Buch ist als schrittweises Eintauchen in die Schlüsselmechanismen des modernen C++ aufgebaut. Der Autor verschwendet keine Zeit mit der Erklärung der grundlegenden Syntax (Variablen, Schleifen, Funktionen), sondern geht sofort zu Themen über, die professionelles C++ von Lehrbuch-C++ unterscheiden:
- Smart Pointer (unique_ptr, shared_ptr, weak_ptr) und speicherleckfreie Speicherverwaltung.
- Move-Semantik und perfekte Weiterleitung (perfect forwarding).
- Lambda-Ausdrücke und Closures – von einfach bis komplex mit Zustandserfassung.
- Templates – von grundlegenden bis zu variadic templates und SFINAE.
- Standard Template Library (STL) – Container, Algorithmen, Iteratoren, Funktionsobjekte.
- Parallelität und Multithreading – std::thread, Mutexe, atomare Operationen, Futures.
- Neue Funktionen von C++17/20 – std::optional, std::variant, std::any, Concepts, Coroutinen und Ranges.
- Leistung – wie man schnellen Code schreibt und profiliert.
Für wen ist dieses Buch geeignet?
Das Buch richtet sich an Programmierer, die bereits in C++ schreiben (oder in einer anderen kompilierten Sprache) und auf moderne Standards umsteigen möchten. Es ist nützlich für:
- Entwickler, die mit Legacy-Code in C++98/03 arbeiten und ihn modernisieren möchten.
- Fortgeschrittene Studenten technischer Fachrichtungen, die Systemprogrammierung lernen.
- Ingenieure, die von C oder Java zu C++ wechseln und ein tiefes Verständnis der Sprachidiome benötigen.
- Alle, die sich auf C++-Vorstellungsgespräche in großen IT-Unternehmen (Google, Microsoft, JetBrains usw.) vorbereiten.
Was lernt der Leser?
Nach der Lektüre werden Sie in der Lage sein:
- Sicheren und effizienten Code mit Smart Pointern und RAII zu schreiben.
- Move-Semantik zur Leistungsoptimierung zu verstehen und anzuwenden.
- Generische Algorithmen mit Templates und Concepts zu erstellen.
- Lambdas für prägnante Datenverarbeitung zu verwenden.
- Mit Multithreading und Synchronisation ohne Datenrennen zu arbeiten.
- Neue Typen aus C++17/20 (optional, variant, any) für ausdrucksstärkeren Code einzusetzen.
- Benutzerfreundliche Bibliotheken und APIs zu entwerfen.
Stärken des Buches
1. Aktualität. Das Buch deckt Standards bis einschließlich C++20 ab, einschließlich Neuerungen wie Coroutinen und Ranges. Dies ist selbst unter englischsprachigen Veröffentlichungen der Jahre 2021-2023 selten.
2. Tiefe ohne übermäßige Komplexität. Der Autor erklärt komplexe Themen (z. B. SFINAE oder Move-Semantik) anhand von Beispielen, die sofort ausgeführt und experimentiert werden können. Dabei verliert er sich nicht in akademischen Tiefen, sondern konzentriert sich auf die praktische Anwendung.
3. Struktur. Jedes Kapitel beginnt mit einer kurzen Einleitung und endet mit einer Zusammenfassung und Übungen. Die Übungen sind nicht „schreiben Sie einen Taschenrechner“, sondern Aufgaben, die das Verständnis genau der modernen Mechanismen testen (z. B. Implementieren Sie Ihren eigenen unique_ptr oder schreiben Sie eine Template-Funktion, die mit jedem Container arbeitet).
4. Code. Alle Beispiele sind kompilierbar und auf mehreren Compilern (GCC, Clang, MSVC) getestet. Der Autor gibt Ratschläge zur Auswahl der Compiler-Version und der Flags.
5. Leistung. Das Buch enthält viele