C++ Templates: Vollständiges Handbuch
832 Seiten
German
PDF
4.5

C++ Templates: Vollständiges Handbuch

C++ Templates: Vollständiges Handbuch

Autor:

Jahr:

Zusammenfassung:

Einleitung

Das Buch „C++ Templates: The Complete Guide“ (auf Deutsch: „C++ Templates: Vollständiges Handbuch“) ist ein grundlegendes Werk, verfasst von drei anerkannten Experten auf dem Gebiet C++: David Vandevoorde, Nicolai Josuttis und Douglas Gregor. Die zweite Auflage, erschienen im Jahr 2017, wurde vollständig unter Berücksichtigung der Standards C++11, C++14 und C++17 überarbeitet. Es ist nicht nur ein Lehrbuch, sondern ein umfassendes Nachschlagewerk, das alle Aspekte der Arbeit mit Templates abdeckt – von grundlegenden Konzepten bis hin zu komplexesten Techniken der Metaprogrammierung.

Worum geht es in diesem Buch

Das Buch widmet sich dem Template-Mechanismus in C++ – einer der mächtigsten und gleichzeitig komplexesten Sprachfunktionen. Die Autoren erläutern Schritt für Schritt:

  • Grundlagen: parametrisierte Typen, Funktions-Templates, Spezialisierung.
  • Fortgeschrittene Themen: variadische Templates (variadic templates), Faltungsausdrücke (fold expressions), Template-Aliase (alias templates).
  • Metaprogrammierung: Berechnungen zur Compile-Zeit, constexpr, if constexpr.
  • Type Traits und SFINAE: bedingtes Ein-/Ausschließen von Überladungen.
  • Praktische Techniken: intelligente Zeiger, Policies, Traits, Fabriken.
  • Standardbibliothek: std::tuple, std::variant, std::optional und deren interne Funktionsweise.

Für wen ist es gedacht

Das Buch richtet sich an erfahrene C++-Entwickler, die bereits sicher Code schreiben, aber Templates tiefer verstehen und lernen möchten, sie zur Erstellung flexibler, effizienter und sicherer Bibliotheken einzusetzen. Für Anfänger wird es schwierig sein: Kenntnisse der C++-Syntax, Speicherverwaltung, OOP und grundlegender Templates werden vorausgesetzt. Mit entsprechendem Durchhaltevermögen kann das Buch jedoch ein hervorragendes Sprungbrett für den Aufstieg auf ein fortgeschrittenes Niveau sein.

Was der Leser lernen wird

  • Wie man Template-Klassen und -Funktionen richtig entwirft.
  • Wie man variadische Templates zur Verarbeitung einer beliebigen Anzahl von Argumenten einsetzt.
  • Wie man SFINAE und std::enable_if für bedingte Kompilierung anwendet.
  • Wie man effiziente Metaprogramme schreibt, die zur Compile-Zeit ausgeführt werden.
  • Wie man mit Type Traits arbeitet und eigene Traits erstellt.
  • Wie Container und intelligente Zeiger der Standardbibliothek intern aufgebaut sind.
  • Wie man typische Fehler bei der Arbeit mit Templates vermeidet (Probleme mit Instanziierung, zweiphasige Namenssuche).

Stärken

1. Tiefe und Aktualität. Das Buch deckt alle Neuerungen von C++11/14/17 ab, einschließlich auto, decltype, constexpr, if constexpr, fold expressions. Das macht es unverzichtbar für modernes C++.

2. Struktur und Anschaulichkeit. Der Stoff ist in logische Teile gegliedert: Grundlagen, Implementierungsdetails, Metaprogrammierung, praktische Anwendungen. Jedes Kapitel enthält zahlreiche Codebeispiele, Erläuterungen und Warnhinweise.

3. Autorität der Autoren. Vandevoorde ist einer der Entwickler des C++-Standards, Josuttis ist Autor des Kultbuchs „C++ Standard Library“, Gregor ist Experte für Templates und Boost. Die Qualität der Erklärungen und die Genauigkeit der Formulierungen sind auf höchstem Niveau.

4. Praktischer Nutzen. Das Buch erklärt nicht nur die Theorie, sondern zeigt auch, wie man Templates in realen Projekten einsetzt: von der Erstellung generischer Algorithmen bis zum Aufbau von Bibliotheken.

Empfehlung

Das Buch ist Pflichtlektüre für alle, die:

  • Professionell in C++ programmieren und ihr Niveau auf Expertenniveau steigern möchten.
  • Bibliotheken oder Frameworks entwickeln, die Flexibilität und Leistung erfordern.
  • Sich auf ein Vorstellungsgespräch für eine Position als Senior C++ Developer vorbereiten.
  • Sich für Metaprogrammierung interessieren und verstehen möchten, wie moderne C++-Bibliotheken (Boost, Eigen, Range-v3) funktionieren.

Wenn Sie gerade erst mit dem Erlernen von C++ beginnen, lesen Sie zuerst „C++ Primer“ oder „Programming: Principles

Empfehlungen