我应该如何创建一个Clang NamedDecl实例?

时间:2016-05-18 16:17:02

标签: c++ clang abstract-syntax-tree

作为一个学习练习,我试图直接使用Clang类在代码中构建C ++ AST。

NamedDecl构造函数为protected

如何创建NamedDecl实例?

1 个答案:

答案 0 :(得分:1)

Clang使用NamedDecl作为更具体的命名的decl的基类(例如ValueDeclTypeDecl,...),它们仍然是更多的基类特定的Decl种类。因此,Clang不希望您直接创建NamedDecl并敦促您创建更具体的内容。

例如,如果你想创建一个代表一个类的对象,你应该创建一个RecordDeclXCCRecordDecl

当然,您可以通过派生clang::NamedDecl并使派生类的构造函数成为公共来绕过这种机制。