C-Enums ganz einfach Strings zuordnen
Bei der C-Programmierung können Sie in Bibliotheksheadern auf verschiedene Enums stoßen. Um die Übersetzung zwischen Aufzählungen und für Menschen lesbaren Zeichenfolgen zu erleichtern, suchen Entwickler häufig nach einer eleganten und effizienten Lösung. Typischerweise umfasst ein Brute-Force-Ansatz die Erstellung mehrerer Funktionen, die jeden Enum-Wert in einen String konvertieren. Allerdings mangelt es dieser Methode an der von vielen gewünschten Ausgereiftheit und Benutzerfreundlichkeit.
Eine mögliche Lösung liegt in der Verwendung von Vorlagen. Durch die Nutzung von Vorlagen ist es möglich, eine generische Funktion zu erstellen, die jeden Enum-Typ einer entsprechenden Zeichenfolge zuordnet. Dieser Ansatz erfordert jedoch eine Änderung der ursprünglichen Enum-Definitionen, was aufgrund der Abhängigkeit von Bibliotheken von Drittanbietern möglicherweise nicht immer möglich ist.
Für Situationen, in denen eine Änderung der Enum-Definitionen keine Option ist, ziehen Sie den folgenden Ansatz in Betracht:
Die benutzerdefinierte Klasse „map_init“ bietet eine praktische Möglichkeit, eine Karte zu initialisieren, indem Enum-String-Paare auf prägnante und lesbare Weise angegeben werden. Hier ist ein Beispiel:
std::map<MyEnum, const char*> MyMap; map_init(MyMap) (eValue1, "A") (eValue2, "B") (eValue3, "C") ;
Das Ergebnis ist eine vollständig ausgefüllte Karte, auf die Sie zugreifen können:
eee e; fff f; std::cout << getStringValue(e); std::cout << getStringValue(f);
Dieser Ansatz bietet eine saubere und effiziente Lösung für die Konvertierung von Aufzählungen in Strings und berücksichtigt dabei benutzerfreundliche und verständliche Nachrichten in Ihren Anwendungen.
Das obige ist der detaillierte Inhalt vonWie kann ich C-Enums einfach Strings zuordnen, ohne die Enum-Definitionen zu ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!