是否有任何简单可靠的方法(a.k.a.而非正则表达式)将函数指针声明的QualType
作为字符串但附加了名称?我试图利用QualType::getAsString(const PrintingPolicy &Policy)
,但遗憾的是,该配置没有选项。
e.g。
int (*)(void)
----> int (*whatever_name_here)(void)
答案 0 :(得分:0)
您可以创建VarDecl
并进行打印。
假设ctx
是您的ASTContext
,而type
是您的QualType
,可以执行以下操作:
// Create identifier.
IdentifierInfo id = ctx.Idents.get("whatever_name_here");
// Create variable declaration.
VarDecl *vd = VarDecl::Create(ctx, ctx.getTranslationUnitDecl(),
SourceLocation(), SourceLocation(), &id, type, nullptr, StorageClass:SC_None);
// Print it.
vd->print(/* put your llvm::raw_stream here */, ctx.getPrintingPolicy());