Errata

S. 53 Listing ganz unten: Es muss cin >> a; heißen.

S. 71 Abschnitt if constexpr: Ersetze den Nebensatz "wenn wahrheitswert schon zur Compilationszeit bekannt ist" durch "wenn wahrheitswert wahr ist. wahrheitswert muss schon zur Compilationszeit bekannt sein"

S. 76 Mitte: n darf natürlich nicht const oder constexpr sein!

S. 85, Abbildung 1.14: Nach class fehlt der (optionale) Typname, unter dem die Aufzählung danach angesprochen werden kann (vgl. Abb. 1.15 auf S. 88).

S. 86, nach 2/3 der Seite. Richtig ist: Wochentag::montag = morgen;      // Fehler (montag ist Konstante)
(Wochentag:: fehlt am Anfang der Zeile)

S. 190-191, Listing 3.27: 1. std::endl ist überflüssig, weil cerr eine ungepufferte Ausgabe bewirkt.
2. Die Anweisung radius = r; muss nach der if-Anweisung stehen!

S. 332 Mitte. Den ersten Satz ersetzen durch: "Auf welches Subobjekt soll der Zeiger zeigerAufGrafischeObjekte[2] in Listing 6.30 verweisen?"

S. 333, Listing 6.33: Der Parameter für string_view muss einen anderen Namen haben, etwa beschriftung, der dann auch bei der Initialisierung von BeschriftetesObjekt verwendet wird. In den downloadbaren Beispielen ist es korrekt.

S. 379, Abbildung 8.4: const muss wie explicit optional sein. In der Praxis wird ein Typumwandlungsoperator jedoch immer const sein.

S. 578: Zeile 29 im Listing streichen.

S. 852, 2. Absatz: Mitte. Den ersten Satz "Die äußeren ..." streichen. C++11 erforderte zwei Klammerebenen, seit C++14 genügt eine.

Tipps

S. 571, Abschnitt 16.2.1 zu Linux: Ein Tipp zur Vereinfachung: Wenn Sie Linux Mint 20 (Ulyana) haben, genügt die Installation von Qt-default mit der Anwendungsverwaltung. Um libqwt5 müssen Sie sich nicht mehr kümmern, und der Aufruf von qtenv.sh (siehe Verzeichnis cppbuch/k16) ist nicht notwendig.

S. 689, Abschnitt 21.3.7: Falls das Objekt auf der linken Seite der Zuweisung groß genug ist, um das Objekt auf der rechten Seite aufzunehmen, kann die Performance für L-Werte verbessert werden - auf Kosten der Einfachheit. Man kann die Kopie bei der Übergabe des Arguments einsparen, wenn es als const Klasse& übergeben wird. Die Übertragung der Werte muss man dann natürlich selbst übernehmen. Für R-Werte braucht man dann noch operator=(Klasse&&).