clang-AST 遍历 - 如何获取类的成员变量

Rak*_*aks 3 clang abstract-syntax-tree

我想遍历一个具有一个成员变量和一个方法的简单类的 AST。我发现该类表示为 CXXRecordDecl。

CXXREcordDecl 中用于获取表示为 FieldDecl 的成员变量列表的 api 是什么?

Ben*_*ier 5

可以使用以下方法检索字段RecordDecl::fields(也存在获取该范围的开始和结束迭代器的方法),例如对于CXXRecordDecl

CXXRecordDecl* cl = ...;
for (const auto& field : cl->fields) {
    const auto& name = field->getName();
    const auto field_cl = field->getType()->getAsCXXRecordDecl(); 
}
Run Code Online (Sandbox Code Playgroud)

同样,您可以使用methods().