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.

Lesezeit: 6 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 1 Beitrag
Von
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.

Immer mehr Wissen. Das digitale Abo für IT und Technik.

  • Zugriff auf alle Inhalte von heise+
  • exklusive Tests, Ratgeber & Hintergründe: unabhängig, kritisch fundiert
  • c't, iX, Technology Review, Mac & i, Make, c't Fotografie direkt im Browser lesen
  • einmal anmelden – auf allen Geräten lesen - monatlich kündbar
  • erster Monat gratis, danach monatlich 9,95 €
  • Wöchentlicher Newsletter mit persönlichen Leseempfehlungen des Chefredakteurs
GRATIS-Monat beginnen Jetzt GRATIS-Monat beginnen Mehr Informationen zu heise+