Errata

S. 170 Mitte: "Das Listing 2.56 zeigt die Einbindung eines Moduls hello" usw. Statt hello muss es grussmodul heißen.

S. 341, ab Mitte: Der Datentyp von Obj ist nicht beliebig. Er muss Zeiger, Referenz oder Zeiger auf ein Datenelement sein. Das im Buch folgende Beispiel führt zu undefiniertem Verhalten, weil letzlich ein als const deklariertes Objekt nicht verändert werden soll. Eine sichere Verwendung von const_cast ist möglich, wenn der Schreibschutz für ein nicht-konstantes Objekt über einen Zeiger realisiert wird und dieser Schreibschutz aufgehoben werden soll, etwa


int i {100};               // nicht const
const int *ip {&i};        // Schreibschutz
//*ip = 0;                    geht nicht wegen Schreibschutz
int *iq {const_cast(ip)};
*iq = 0;                   // geht! (ändert i)
cout << i << endl;         // 0

S. 412-414, Abschnitt 8.9.2: Das Leerzeichen vor dem Unterstrich _ bei operator"" _ wird seit C++23 nicht mehr empfohlen. Es sollte also in den Beispielprogrammen entfallen.

Kapitel 17: Die neuen Versionen der Boost-Bibliothek ab 1.87 haben zum Teil andere Schnittstellen. So gibt es einige Funktionen nicht mehr oder sie wurden umbenannt. Leider gab es während des Verfassens des Buchs keine diesbezügliche Warnung bei der Compilation der Beispiele. Lösung: Windows-Nutzer, die Compiler und Tools von der Download-Seite des Buchs installiert haben, müssen nichts tun. Linux- und Mac-Nutzer sollten keine neuere Boost-Version als die im Buch verwendete installieren (1.81). Bei der nächsten Auflage des Buchs werden die Beispiele des Kapitels und der zugehörige Text der dann aktuellen Boost-Version angepasst (sofern das Kapitel nicht wegen des gesamten Seitenumfangs Kürzungen zum Opfer fällt).