Ist es möglich, Enum-Werte in C ++ 11 ohne Makros zu schreiben?

8

Ich weiß, dass es möglich ist, ein "Register" -Makro zu schreiben, das ihre Werte ihren String-Darstellungen zuordnet. Gibt es in C ++ 11 jedoch eine neue Magie, die es möglich macht, auf Makros und Registrierungsvorlagen zu verzichten?

Um es klar zu machen, würde ich gerne in der Lage sein, die Bezeichner von enum-Variablen zu drucken, wie zum Beispiel:

%Vor%

Sollte ausgeben

%Vor%     
Tamás Szelei 18.11.2011, 16:48
quelle

2 Antworten

8

Nein, das ist nicht wirklich möglich. Sie benötigen Makros (vorzugsweise) oder um den Compiler für zusätzliche Tricks zu erweitern (Sie könnten GCC mit Plugins oder mit MELT erweitern, um einen speziellen% -Zugriff zu ermöglichen.) co_de% Funktion, aber ich denke nicht, dass es eine gute Idee ist). Sie könnten auch (unter der Annahme, dass die ausführbare Datei unter Beibehaltung der Debugging-Informationen erstellt wurde) den Namen aus den Debugging-Informationen extrahieren.

Wenn Sie das wirklich brauchen, ist ein vielleicht einfacherer Weg, etwas (C ++) Code zu erzeugen, was fast das ist, was Makros für Sie tun. Die Qt Moc könnte eine Inspiration für dich sein.

    
Basile Starynkevitch 18.11.2011, 16:53
quelle
2

Nein. Nicht möglich ohne Makros.

    
balki 18.11.2011 16:53
quelle

Tags und Links