C++-Tricks: Scoped Enums für robusteren Code

Die Einführung von Scoped Enums in C++11 hat Enumerationen zu einem mächtigen Sprachmittel gemacht, die zudem für robusteren Code sorgen.

Lesezeit: 6 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen
Von
  • Andreas Fertig
Inhaltsverzeichnis
Mehr zur Programmiersprache C++

Enumerationen (Aufzählungen) bilden in C++ einen eigenen Datentyp, der von Programmierern mit Konstanten befüllt werden kann. Sie werden über das Schlüsselwort enum definiert. Es gibt Aufzählungen mit eigenem Namensraum (Scoped Enums) und ohne (Unscoped Enums). Der Artikel beschäftigt sich mit Scoped Enums.

Scoped Enums sind seit C++11 in der Sprache enthalten. Sie bringen drei Eigenschaften mit, die sie für verschiedene Anwendungen interessant machen. Der erste Punkt ist die Verfügbarkeit im Namensraum. Scoped Enums beheben eine Schwäche der in C existierenden Enums: Diese sind im gesamten Namensraum sichtbar, in dem der Aufzählungstyp enum definiert wird. Das führt immer wieder zu Problemen, vor allem, wenn enum im globalen Namensraum deklariert ist.

Das Beispiel im folgenden Listing kompiliert nicht, da es zwei Symbole Blue gibt.

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+