【发布时间】:2015-01-18 07:21:09
【问题描述】:
我想遍历一个具有一个成员变量和一个方法的简单类的 AST。我发现该类表示为 CXXRecordDecl。
CXXREcordDecl 中的 api 是什么来获取表示为 FieldDecl 的成员变量列表?
【问题讨论】:
-
改写 VisitFieldDecl 会更容易。
标签: clang abstract-syntax-tree
我想遍历一个具有一个成员变量和一个方法的简单类的 AST。我发现该类表示为 CXXRecordDecl。
CXXREcordDecl 中的 api 是什么来获取表示为 FieldDecl 的成员变量列表?
【问题讨论】:
标签: clang abstract-syntax-tree
可以使用RecordDecl::fields 检索字段(也存在获取该范围的开始和结束迭代器的方法),例如对于CXXRecordDecl
CXXRecordDecl* cl = ...;
for (const auto& field : cl->fields) {
const auto& name = field->getName();
const auto field_cl = field->getType()->getAsCXXRecordDecl();
}
同样,您可以使用methods() 访问这些方法。
【讨论】: