我一直在使用卓越的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或什么?