我一直在使用卓越的C接口libclang(http://clang.llvm.org/doxygen/group__CINDEX.html)編寫C++ AST分析器。不幸的是,在C++ 11範圍的枚舉和老式的枚舉之間似乎沒有消歧義:它們都有一個遊標類型CXCursor_EnumDecl和一個類型CXType_Enum I.e.相同。如何檢測使用libclang的枚舉和範圍枚舉之間的區別?
我曾試着去看孩子,看他們的父母是不同的 - 可悲的是。我試過要求基礎類型,我得到了一個整數。我已經檢查了Enum之後聲明的所有項目,以查看是否可能會出現舊式的枚舉bind或typedef,再次沒有區別。
我開始認爲我必須缺少一些東西。我是否必須使用代碼完成API來確定它是哪種類型的Enum或什麼?