使用clang API打印参数类型(ParmVarDecl)

Bar*_*kar 12 c++ llvm clang

我需要使用clang API在C++源文件中打印参数的类型.

如果我在clang(ParmVarDecl* param)中有参数表示,我可以使用打印参数的名称param->getNameAsString().我需要一个方法param->getTypeAsString(),但没有这样的方法.那么还有另一种方法可以完成这项任务吗?

Bar*_*kar 25

在llvm irc中得到了我的问题的答案:

有一种方法 std::string clang::QualType::getAsString(SplitQualType split)

所以这对我有用:

ParmVarDecl* param = *someParameter;
cout << QualType::getAsString(param->getType().split()) << endl;
Run Code Online (Sandbox Code Playgroud)

  • 你可能刚刚救了我一个星期 (2认同)
  • 现在,您需要添加一个clang :: PrintingPolicy。这样,调用现在看起来像:`QualType :: getAsString(param-&gt; getType()。split(),PrintingPolicy {{}})` (2认同)