Ich habe einen C++ AST-Parser mit der ausgezeichneten C-Schnittstelle libclang (http://clang.llvm.org/doxygen/group__CINDEX.html) geschrieben. Unglücklicherweise scheint es keine Disambiguierung zwischen C++ 11-Bereichsaufzählungen und altmodischen Aufzählungen zu geben: beide haben eine Cursor-Art von CXCursor_EnumDecl und eine Art von CXType_Enum-Ie. identisch.Wie erkennen Sie den Unterschied zwischen einer Enum- und einer Bereichsumgebung mit libclang?
Ich habe versucht, die Kinder zu besuchen, um zu sehen, ob ihre Eltern Typen unterscheidet - leider nicht. Ich habe versucht, nach dem zugrunde liegenden Typ zu fragen, ich bekomme für beide eine Ganzzahl zurück. Ich habe alle Gegenstände untersucht, die nach der Enum deklariert wurden, um zu sehen, ob vielleicht für altmodische Enums eine Bindung oder ein typedef erscheinen könnte, wieder ist kein Unterschied offensichtlich.
Ich fange an zu denken, dass ich etwas verpassen muss. Muss ich die Code-Vervollständigungs-API verwenden, um herauszufinden, um welche Art von Enum es sich handelt?