我一直在使用优秀的C接口libclang(http://clang.llvm.org/doxygen/group__CINDEX.html)编写C++ AST解析器。不幸的是,C++11作用域枚举和旧式枚举之间似乎没有区别:它们都具有CXCursor_EnumDecl的游标类型和CXType_Enum的类型,即相同。
我尝试访问子元素以查看其父类型是否不同 - 不幸的是没有。我尝试询问底层类型,我得到两个整数。我检查了枚举后声明的所有项,以查看是否可能出现绑定或typedef,但仍然没有明显的区别。
我开始觉得我可能漏掉了什么。我必须使用代码完成API来确定它是哪种类型的枚举吗?
我尝试访问子元素以查看其父类型是否不同 - 不幸的是没有。我尝试询问底层类型,我得到两个整数。我检查了枚举后声明的所有项,以查看是否可能出现绑定或typedef,但仍然没有明显的区别。
我开始觉得我可能漏掉了什么。我必须使用代码完成API来确定它是哪种类型的枚举吗?