Ho scritto un parser C++ AST utilizzando l'eccellente libclang dell'interfaccia C (http://clang.llvm.org/doxygen/group__CINDEX.html). Sfortunatamente non sembra esserci disambiguazione tra enfasi con scope C++ 11 e enfasi vecchio stile: entrambe hanno un tipo di cursore CXCursor_EnumDecl e un tipo di CXType_Enum I.e. identici.Come si rileva la differenza tra un enum e un enume con scope usando libclang?
Ho provato a visitare i bambini per vedere se il loro genitore è diverso - purtroppo no. Ho provato a chiedere il tipo sottostante, ritorno a un intero per entrambi. Ho esaminato tutti gli oggetti dichiarati dopo l'Enum per vedere se forse per gli Enums vecchio stile potrebbe apparire un bind o typedef, ancora nessuna differenza è ovvia.
Sto iniziando a pensare che mi manchi qualcosa. Devo usare l'API di completamento del codice per capire quale tipo di Enum è o qualcosa del genere?