【问题标题】:clang-AST traversal - How to get member variables of a classclang-AST 遍历 - 如何获取类的成员变量
【发布时间】:2015-01-18 07:21:09
【问题描述】:

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

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

【问题讨论】:

  • 改写 VisitFieldDecl 会更容易。

标签: clang abstract-syntax-tree


【解决方案1】:

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

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

同样,您可以使用methods() 访问这些方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 2011-06-27
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多