Blog 3 Min. Lesezeit

C++17 In Detail – Buchrezension

Diesen Artikel teilen
C++17 In Detail Book Review

Seit seiner Entstehung hat sich C++ kontinuierlich weiterentwickelt und zahlreiche wichtige Meilensteine durchlaufen – von C with Classes bis zum Aufkommen der neueren Standards. Von 1991 bis 2011 entwickelte sich die Sprache eher langsam; viele Neuerungen kamen aus Bibliotheken wie STL und Boost. Seit 2011 wurden dank C++11, C++14, C++17 und dem damals bevorstehenden C++20 jedoch zahlreiche Funktionen in den Standard aufgenommen. In jüngerer Zeit fördert die C++-Community verstärkt den Einsatz neuerer Standards, um bestehende Codebasen zu modernisieren. Bartłomiej Filipek gehört zu den aktivsten Bloggern der C++-Community und trägt dazu bei, die neueren Standards bekannter zu machen. Er hat ein hervorragendes Buch über die Funktionen des C++17-Standards geschrieben. Hier ist eine kurze Rezension seines Buches. Ein pragmatischer AnsatzIn der Informatik gibt es viele akademische Bücher, die sich vor allem an Studierende richten, und andere Bücher, die hauptsächlich für Entwickler gedacht sind, die praktische Hinweise zur Lösung realer Probleme bei der Produktentwicklung benötigen. Man lernt durch Programmieren: Tatsächlich gibt es nur sehr wenige Seiten ohne Quellcode, und jede Erklärung wird durch mindestens ein Codebeispiel veranschaulicht. Die Codebeispiele sind sehr gut formatiert, übersichtlich und leicht zu lesen.

Der Autor liefert außerdem zahlreiche praktische Informationen, etwa zur Compiler-Unterstützung der einzelnen Funktionen.

Von Anfang an das Gesamtbild:

Um einen Eindruck vom Inhalt eines Buches zu bekommen, schaut man sich normalerweise das Inhaltsverzeichnis an und liest die Einleitung. In vielen Fällen reicht das jedoch nicht aus, um die Ziele des Buches wirklich klar zu verstehen. Interessant an diesem Buch ist der vierseitige Abschnitt „Quick Overview“, der den Inhalt des Buches sehr verständlich zusammenfasst.Neue Sprachfeatures verständlich erklärt:Das Buch behandelt nahezu alle neuen Funktionen von C++17 und gruppiert sie nach Themenbereichen. Obwohl einige Funktionen schwer zu verstehen sind, verfolgt Bartłomiej Filipek den Ansatz „Keep it simple“ und erklärt jede Funktion sehr verständlich anhand einfacher Beispiele – etwa im Abschnitt über die neuen Template-Funktionen, der unter anderem Folgendes umfasst:

  • Template-Argumentableitung für Klassentemplates
  • template<auto>
  • Fold Expressions
  • if constexpr – das Compile-Time-if für C++!
  • Sowie einige kleinere, detaillierte Verbesserungen und Korrekturen

Die Klarheit der Erklärungen und Codebeispiele ist beeindruckend. Jeder C++-Entwickler, selbst ein Anfänger, kann den Zweck dieser neuen Features verstehen. Neue Features der Standardbibliothek verständlich erklärt Die gute Nachricht ist, dass sich auch die Standardbibliothek mit jedem neuen Standard weiterentwickelt und viele interessante Funktionen hinzukommen. Das Buch behandelt unter anderem folgende C++17-Features der Standardbibliothek:

  • Wie sich nullable Typen mit std::optional darstellen lassen.
  • Was ist eine Tagged Union? Und warum benötigen wir mit std::variant eine typsichere Union?
  • Wie sich beliebige Typen mit std::any darstellen lassen.
  • Wie string_view eingesetzt wird, um die Performance zu verbessern, ohne die Anwendung zu beschädigen.
  • Welche neuen String-Operationen in der Standardbibliothek verfügbar sind.
  • Wie mit dem Dateisystem über die Standardbibliothek gearbeitet wird.
  • Was parallele Algorithmen sind.

Jedes Feature wird anhand zahlreicher Codebeispiele ausführlich erklärt. Besonders interessant ist, dass der Autor auch Performance- und Speicheraspekte behandelt und erläutert, wie sich ein Feature auf Leistung und Speicherverbrauch auswirken kann.

Weitere Beispiele und Anwendungsfälle

Am Ende des Buches werden weitere interessante Probleme vorgestellt. Der Autor zeigt verschiedene Lösungsansätze und erklärt, wie der neue Standard diese Probleme besser löst als die älteren Sprachfeatures. Fazit:Beim Lesen des Buches wird deutlich, dass der Autor ein Programmierer ist, der an vielen C++-Projekten zur Lösung realer Probleme gearbeitet hat. Das erklärt den pragmatischen Ansatz des Buches. Wir empfehlen es jedem Entwickler, der den neuen C++17-Standard beherrschen möchte. Das Buch ist auf Leanpub erhältlich; Leser unseres Blogs können es über den folgenden Gutschein-Link mit etwa 15 % Rabatt erwerben:https://leanpub.com/cpp17indetail/c/codergears

Diesen Artikel teilen