Weniger stupide Schreibarbeit: Code reduzieren mit C++20

Wer seine Software nach dem Clean-Code-Prinzip entwickelt, hat weniger Arbeit und macht weniger Fehler. C++20 entschlackt viele Stellen zusätzlich.

In Pocket speichern vorlesen Druckansicht 93 Kommentare lesen
Schreiben, Bleistieft, Block
Lesezeit: 2 Min.

Weniger Arbeit, weniger Fehler und ein stabileres Programm im Ergebnis – das Prinzip des Clean Code setzt an den Grundlagen der Softwareentwicklung an. Die zentrale Regel lautet Don't Repeat Yourself (DRY), denn wer weniger Dubletten produziert, kann seine Software ebenfalls schneller und sicherer refaktorisieren und damit den Releasezyklus erhöhen.

Mitte 2020 erschien C++20; der Standard leistet im Hinblick auf Clean Code einiges: Insbesondere lassen sich mit ihm Vergleiche auf das Wesentliche reduzieren. Eine neue Regel erlaubt es dem Compiler, das Resultat von einer ==-Operation zu negieren und als Ergebnis für eine !=-Operation zu verwenden. Zuvor mussten Programmierer an dieser Stelle viel stumpfsinnige, aber fehleranfällige Schreibarbeit leisten.

Bereits C++11 führte die Syntax =default ein, die sich nun auf die Vergleichsoperatoren anwenden lässt. Auf diese Weise stellt der Compiler die Implementierung für den Operator == selbst bereit, das Programm vergleicht alle Datenfelder eines Objekts mit den jeweils anderen. Fügt man neue Felder in einer Klasse hinzu, ist der Gleichheitsoperator immer auf dem aktuellen Stand – ein händisches Anpassen fällt weg.

Neu mit an Bord ist der Spaceship-Operator <=>, der Größer- und Kleiner-Vergleiche entschlackt: In der Praxis genügt es nämlich nicht einfach, die Gleichheit oder Ungleichheit festzustellen, vielmehr muss das Programm erkennen, ob ein Wert größer oder kleiner als ein anderer ist. Hierfür waren bislang die vier Operatoren >, <, >= und <= nötig. Nun lässt sich dies auf eine Zeile Code zusammenschrumpfen, denn <=> vergleicht feldweise in der Reihenfolge, in der die Datenfelder in der Klasse definiert sind.

Viele Praxisbeispiele hierzu finden sich im neuen Tutorial der iX 3/2021, in dem Andreas Fertig effizientere Vergleiche unter die Lupe nimmt. Der zweite Teil des Tutorials in der kommenden April-iX erklärt, wie Entwickler ihren Code lesbarer gestalten.

(fo)