Breymann_5-Fragen5 Fragen – 5 Antworten, das neue Fachformat unserer Autoren: diesmal mit Ulrich Breymann über C++!

Herr Breymann, Sie haben Sie gerade die 4. Auflage Ihres Buches Der C++ Programmierer veröffentlicht. Wie kamen Sie zu eigentlich zu diesem Buchprokjekt, dass sich ja nun schon viele Jahre zum festen Hanser Computerbuchprogramm gehört?

Zu diesem Buch hat mich Christian Rauscher, ein ehemaliger Lektor des Hanser Verlags, auf den ich große Stücke halte, gebracht. Er fragte mich anlässlich einer Buchpräsentation, ob ich nicht meine Vorlesungsinhalte in einem Buch fassen möchte. So fing es an. Und nachdem das Buch doch recht viele Leserinnen und Leser gefunden hatte, hatte ich wiederum Freude daran, es fortzuentwickeln. C++ war damals im Kommen, und ich fand es so interessant, dass ich mich damals an der deutschen Arbeitsgruppe zur (ersten) Standardisierung von C++ beteiligte.

Was sollte der Leser über Ihr Buch wissen?

Das Buch führt in die Programmiersprache C++ ein. Es beschreibt auch die C++-Standardbibliothek und ist deshalb als Nachschlagewerk geeignet. Die Botschaft an die Leserinnen und Leser ist: Nutzen Sie die Änderungen, die C++11 mit sich brachte, und verzichten Sie auf früher übliche unsichere Elemente, wie etwa die Zeichenkettenverarbeitung mit Hilfe von Zeigern. C++14 ist eine Ergänzung zu C++11.

Gibt es eine Stelle oder einen Passus, der Ihnen besonders wichtig ist?

Ja, das Kapitel 21 „Sichere Programmierung“. Dort gibt es mehrere Empfehlungen, die die Qualität von C++-Software verbessern helfen.

Was wird im Bereich C++ gerade diskutiert?

In den Diskussionsbeiträgen des C++-Standardkomitees werden viele Fragen diskutiert. Man kann das nicht auf einzelne Statements reduzieren. Dabei sind diejenigen Aspekte, die bisher nur mit verschiedenen externen Bibliotheken realisiert werden können, im Vordergrund. Es wird erwogen, sie in die Sprache zu integrieren. Als Beispiel möchte ich Operationen auf dem Filesystem und auf Netzwerken erwähnen.

Mit C++11 wurden viele weitreichende Neuerungen in C++ eingeführt. Welche haben sich aus Programmierersicht als am sinnvollsten/am wichtigsten erwiesen? Und  wie schaut es mit C++14 aus?

Meiner Meinung nach sind besonders die Neuerungen sinnvoll, die new/delete vermeiden helfen, wie etwa unique_ptr und shared_ptr. Gerade die Verwendung von new/delete von Unerfahrenen ist fehlerträchtig. Damit verbundene Fehler können nun leicht vermieden werden.

Aus Performanzsicht ist die eingeführte Move-Semantik wichtig.

C++14 hat gegenüber C++11 nur wenige Änderungen. Es handelt sich um kleinere Korrekturen und Ergänzungen. So ist etwa die make_unique()-Funktion nachgerüstet worden. Binäre Literale sind nun mit 0b oder 0B möglich, ebenso Zifferntrennzeichen: 0B1100’1100’0110. Der Rückgabetyp einer Funktion wird nun bei Verwendung des Schlüsselworts auto vom Compiler ermittelt. Einige Einschränkungen von constexpr-Funktionen wurden fallengelassen, usw. Die Änderungen erleichtern die Softwareentwicklung, sind aber nicht von so konzeptioneller Art wie der Sprung von C++03 nach C++11.

Vielen Dank, Herr Breymann! In einem nächsten Beitrag, das verraten wir bereits, werden die Leser mit Ihnen in das Thema Defensiv programmieren mit C++11/14 einsteigen. Wir freuen uns darauf!