我应该如何创建 Clang NamedDecl 实例?
How should I create a Clang NamedDecl instance?
作为学习练习,我正在尝试直接使用 Clang 类 在代码中构建 C++ AST。
NamedDecl
构造函数是 protected
。
如何创建 NamedDecl
实例?
Clang 使用 NamedDecl
作为基础 class 来命名更具体的声明(例如 ValueDecl
、TypeDecl
、...)仍然主要是针对更具体的 Decl 类型的 classes。因此 Clang 不希望您直接创建 NamedDecl 并敦促您创建更具体的内容。
例如,如果您要为其创建对象的声明表示 class,则您应该创建 RecordDecl
或 XCCRecordDecl
。
当然你可以通过派生自clang::NamedDecl
并使派生的class的构造函数绕过这个机制public.
作为学习练习,我正在尝试直接使用 Clang 类 在代码中构建 C++ AST。
NamedDecl
构造函数是 protected
。
如何创建 NamedDecl
实例?
Clang 使用 NamedDecl
作为基础 class 来命名更具体的声明(例如 ValueDecl
、TypeDecl
、...)仍然主要是针对更具体的 Decl 类型的 classes。因此 Clang 不希望您直接创建 NamedDecl 并敦促您创建更具体的内容。
例如,如果您要为其创建对象的声明表示 class,则您应该创建 RecordDecl
或 XCCRecordDecl
。
当然你可以通过派生自clang::NamedDecl
并使派生的class的构造函数绕过这个机制public.