ClassTemplateSpecializationDecl 的定义数据为空

Definition data of ClassTemplateSpecializationDecl is null

例如,我收到一个 class alt::VectorLayout<int, 4> 作为 ClassTemplateSpecializationDecl,我正在尝试处理 class 的字段和方法,但它在定义数据为空的断言上失败.我假设模板特化是一个前向声明,所以它没有被实例化,但我不知道如何实例化,即使提供了所有模板参数。

是否可以接收具有非空定义数据的 ClassTemplateSpecializationDecl 或以某种方式实例化它以填充定义数据?

我可以用 Sema::RequireCompleteType 解决问题。
我发现无法完全从 ClangTool 实例中检索 Sema。我没有使用 ClangTool 处理源文件,而是创建了一个 CompilerInstance,其中 Sema 的实例是可检索的,运行 FrontendActionCompilerInstance.

CompilerInstance 实现:https://github.com/7Hazard/altv-capi/blob/master/src/main.cpp#L111
Sema::RequireCompleteType 用法:https://github.com/7Hazard/altv-capi/blob/master/src/templateClass.cpp#L46