C++-Bibliothek Magic Enum: Enumerationen einfacher nutzen

Enumerationen sind ein praktisches Sprachmittel. Die Bibliothek Magic Enum stellt die beim C++-Sprachstandard noch fehlenden Funktionen zur Verfügung.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Bibliothek Magic Enum: Enums einfacher nutzen
Lesezeit: 13 Min.
Von
  • Detlef Wilkening
Inhaltsverzeichnis

Benötigt ein Entwickler in seinem Sourcecode dedizierte Werte, um zum Beispiel die Status eines Objekts oder die Eigenschaften eines Elements abzubilden, dann findet man leider immer wieder eine Auflistung von Integer-Konstanten:

// Pseudocode
constant integer Visible = 1
constant integer Enable = 2
constant integer Left = 1
constant integer Center = 2

Dies ist kein guter Programmierstil, denn die Konstanten interferieren mit den normalen Integer-Werten und Funktionen. Viele Codefehler findet der Compiler dann nicht, wie eine mit einem beliebigen Integer aufgerufene Funktion, die einen Status erwartet:

// Pseudocode
procedure doit(integer state)
doit(42)    // Programmierfehler, aber
            //kein Compilerfehler

Die Mainstreamprogrammiersprachen sind nicht umsonst statisch typisierte Sprachen – der Compiler soll diese und andere Fehler schon zur Entwicklungszeit erkennen und anzeigen. Das Nutzen allgemeiner Integer für dedizierte Werte dagegen hebelt das Typsystem aus und lässt viele Fehler zu. Deshalb bieten viele Programmiersprachen sogenannte Enums oder Aufzählungstypen an, die für jede Art von dedizierten Werten einen eigenen spezialisierten Typ ermöglichen und damit unter anderem eine Fehlererkennung des Compilers ermöglichen.