Weniger stupide Schreibarbeit: Code reduzieren mit C++20
![Schreiben, Bleistieft, Block](https://heise.cloudimg.io/width/700/q75.png-lossy-75.webp-lossy-75.foil1/_www-heise-de_/imgs/18/3/0/6/6/6/3/6/Schreiben-2feeeeee2cba591a.jpeg)
Wer seine Software nach dem Clean-Code-Prinzip entwickelt, hat weniger Arbeit und macht weniger Fehler. C++20 entschlackt viele Stellen zusätzlich.
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.
Arbeit an den Compiler abtreten
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 [4])
URL dieses Artikels:
https://www.heise.de/-5071680
Links in diesem Artikel:
[1] https://www.heise.de/select/ix/2021/3/2101314112551972913
[2] https://www.heise.de/select/ix/2021/3
[3] https://www.heise.de/ix/
[4] mailto:fo@heise.de
Copyright © 2021 Heise Medien