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%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.