Clang工具。键入名称不含关键字

时间:2017-02-26 14:24:09

标签: clang keyword libtooling

我正在研究一些clang工具,我需要使用未明确指定的类型生成源代码。 我从clang::QualType获得的类型的字符串类似于:class std::initializer_list<int>。问题是获取没有关键字的类型。

我已尝试dyn_cast<>类型(clang::Type)到TypeWithKeyword的所有继承人,但结果始终为空。

当然我可以从类型名称的字符串中删除所有出现的“class”,“struct”等,但我想以“clang方式”解决这个问题。

1 个答案:

答案 0 :(得分:1)

答案很简单。 而不是使用QualType::getAsString(),只需要QualType::getAsString (const PrintingPolicy &Policy)。 所以代码:

PrintingPolicy pp(f_context->getLangOpts());
string typeName = qualType.getAsString(pp);

在不更改PrintingPolicy字段的情况下正常运行。