2017-02-26 65 views
1

我正在使用一些叮当声工具,并且我需要生成类型没有明确指定的源代码。 我从clang::QualType获得的类型的字符串类似于:class std::initializer_list<int>。问题是没有关键字的类型。Clang工装。没有关键字的类型名称

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

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

回答

1

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

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

运作良好没有改变PrintingPolicy领域。

相关问题