So ordnen Sie C-Enums effizient Strings zu
Bei der Arbeit mit C-Enums kann es vorkommen, dass Sie deren Werte in benutzerdefinierte Werte umwandeln müssen. definierte Zeichenfolgen oder umgekehrt. Während ein Brute-Force-Ansatz eine Reihe von Switch-Anweisungen umfassen kann, stehen elegantere Lösungen zur Verfügung.
Verwendung einer Std::map
Eine zuverlässige Methode zum Zuordnen von Aufzählungen für Strings ist die Verwendung eines std::map
Syntactic Sugar: Map_init-Hilfsklasse
Für eine bessere Lesbarkeit sollten Sie die Verwendung einer map_init-Klasse in Betracht ziehen. Diese Klasse initialisiert eine Karte und bietet eine praktische Syntax zum Hinzufügen von Einträgen:
std::map<MyEnum, const char*> MyMap; map_init(MyMap) (eValue1, "A") (eValue2, "B") (eValue3, "C") ;
Diese Klasse verwendet eine map_init_helper-Struktur, die die Verkettung von Einträgen ermöglicht.
Nutzung von Boost::assign
Wenn Sie lieber keine benutzerdefinierten Helfer erstellen möchten, können Sie die Boost::assign-Bibliothek verwenden, die bietet ähnliche Funktionen für Karten und andere kartenähnliche Strukturen.
Fazit
Auch wenn die hier beschriebenen Techniken möglicherweise nicht so prägnant sind wie die Verwendung von RTTI, bieten sie mehr Maßgeschneiderter und flexibler Ansatz für die Zuordnung von C-Enums zu Strings, der auf spezifische Anforderungen wie benutzerdefinierte String-Darstellungen und einfache Wartung eingeht.
Das obige ist der detaillierte Inhalt vonWie kann ich C-Enums effizient Strings zuordnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!