Effektives modernes C++
352 Seiten
German
PDF
4.5

Effektives modernes C++

Effektives modernes C++

Autor:

Jahr:

Zusammenfassung:

Einleitung

Das Buch „Effektives modernes C++“ (Originaltitel Effective Modern C++) von Scott Meyers ist nicht nur eine weitere Anleitung zur Sprache. Es ist ein Konzentrat praktischer Erfahrung, die im Laufe der Evolution von C++ gesammelt wurde. 2014 erschienen, wurde es zum Standardwerk für Tausende von Entwicklern, die von den veralteten Standards C++98/03 zu den modernen C++11 und C++14 wechseln. Meyers, bekannt für seine Serie „Effective C++“, konzentriert sich diesmal auf die neuen Sprachfunktionen, die die Herangehensweise an das Schreiben von Code grundlegend verändert haben.

Das Buch besteht aus 42 konkreten Empfehlungen (Items), die sich jeweils einem wichtigen Thema widmen: von der korrekten Verwendung von auto und Lambda-Ausdrücken bis hin zu den Feinheiten der Move-Semantik und der Arbeit mit Smart Pointern. Es ist kein Lehrbuch für Anfänger, sondern eher ein Leitfaden für erfahrene Programmierer, die effizienten, sicheren und wartbaren Code in modernem C++ schreiben möchten.

Worum es in dem Buch geht

Die Grundidee des Buches ist es zu zeigen, wie man die neuen Funktionen von C++11/14 richtig nutzt und typische Fallstricke vermeidet. Meyers listet nicht nur syntaktische Konstrukte auf, sondern erklärt, warum bestimmte Lösungen besser sind als andere. Das Buch deckt die folgenden Schlüsselbereiche ab:

  • Typableitung: detaillierte Analyse der Mechanismen von auto und decltype, ihr Verhalten in verschiedenen Kontexten.
  • Smart Pointer: std::unique_ptr, std::shared_ptr, std::weak_ptr – wann und welchen man verwendet, wie man zyklische Referenzen vermeidet.
  • Move-Semantik und perfekte Weiterleitung: Rvalue-Referenzen, std::move, std::forward sowie typische Fehler bei ihrer Anwendung.
  • Lambda-Ausdrücke: Syntax, Variablen-Capture, generische Lambdas, Vergleich mit std::bind.
  • Parallelität und Nebenläufigkeit: Grundlagen von std::thread, std::async, Tasks und Futures.
  • Templates und generische Programmierung: Variadic Templates, auto im Rückgabetyp, constexpr.

Für wen ist dieses Buch

Das Buch richtet sich an Programmierer, die bereits Erfahrung mit C++ haben (zumindest auf dem Niveau von C++98/03) und moderne Standards erlernen möchten. Es wird nützlich sein für:

  • Entwickler, die von C++98 auf C++11/14 umsteigen.
  • Ingenieure, die ihr Verständnis von Move-Semantik und Smart Pointern vertiefen möchten.
  • Diejenigen, die hochbelastete Systeme schreiben und maximale Leistung benötigen.
  • Dozenten und fortgeschrittene Studenten, die moderne Ansätze in C++ studieren.

Was der Leser lernen wird

Nach der Lektüre des Buches wird der Leser in der Lage sein:

  • auto und decltype zur Typableitung sicher zu verwenden und alle Nuancen zu verstehen.
  • Richtig zwischen Smart Pointern und rohen Pointern zu wählen und Speicherlecks zu vermeiden.
  • Move-Semantik zur Leistungsoptimierung anzuwenden, ohne Fehler mit hängenden Referenzen zu machen.
  • Effiziente Lambda-Ausdrücke zu schreiben und die Mechanismen von Capture und Lebensdauer zu verstehen.
  • std::async und std::future für asynchrone Aufgaben zu nutzen und Deadlocks zu vermeiden.
  • Zu verstehen, wann constexpr wirklich einen Vorteil bringt und wann nicht.
  • Veraltete Konstrukte zu vermeiden (z. B. std::bind zugunsten von Lambdas).

Stärken des Buches

Der Hauptvorteil des Buches ist seine praktische Ausrichtung. Jeder Tipp wird durch Codebeispiele untermauert, die sowohl die korrekte als auch die falsche Verwendung veranschaulichen. Meyers legt großen Wert auf „Fallstricke“: zum Beispiel, warum auto einen anderen Typ ableiten kann, als Sie erwarten, oder wie Move-Semantik bei bestimmten Typen möglicherweise nicht funktioniert.

Ein weiterer Pluspunkt ist die klare Struktur. Das Buch ist in thematische Kapitel unterteilt, und jedes Item kann separat gelesen werden.

Empfehlungen