2017-02-26 38 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領域。

相關問題