Heim >Backend-Entwicklung >C++ >Wie kann ich C-Enums mithilfe von Vorlagen einfach Strings zuordnen?
Hintergrund:
Sie haben Enum-Typen in externen Bibliotheksheadern definiert und Sie möchten Enum-Werte in für Menschen lesbare Zeichenfolgen konvertieren. Brute-Force-Lösungen beinhalten manuell definierte Funktionen, eine elegante Lösung wird jedoch mithilfe von Vorlagen gesucht.
Verwendung einer std::map:
Ein einfacher Ansatz ist die Verwendung von a std::map
Syntaktischer Zucker mit der Klasse „map_init“:
Um die Syntax zu vereinfachen, kann eine Klasse „map_init“ erstellt werden, um die Verkettung von Wertzuweisungen zu ermöglichen:
map_init(MyMap)(eValue1, "A") (eValue2, "B") (eValue3, "C");
Diese Klassenvorlage gibt ein map_init_helper-Objekt zurück, das einen Verweis auf die Karte speichert und einen bereitstellt Operator()-Funktion zum Hinzufügen von Schlüssel-Wert-Paaren.
Beispielverwendung:
Um diesen Ansatz zu verwenden, können Sie:
Alternative Ansatz:
Wenn die Enum-Namen selbst als Zeichenfolgen verwendet werden sollen, lesen Sie [diesen Beitrag] (Link zum entsprechenden Beitrag).
Zusammenfassung:
Diese Lösung bietet eine einfache und effiziente Möglichkeit, C-Enums auf Strings abzubilden und bietet eine elegantere Alternative zu Brute-Force-Methoden. Die Klasse „map_init“ vereinfacht die Syntax weiter und erleichtert die Arbeit mit Karten von Enum-Werten und deren Zeichenfolgendarstellungen.
Das obige ist der detaillierte Inhalt vonWie kann ich C-Enums mithilfe von Vorlagen einfach Strings zuordnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!