2017-02-26 5 views
1

私はいくつかのclangツールを使っています。明示的に指定されていないタイプのソースコードを生成する必要があります。 タイプがclang::QualTypeの文字列は、class std::initializer_list<int>です。問題は、キーワードなしでタイプを取得することです。クラングツーリング。キーワードなしのタイプ名

私はタイプ(clang::Type)をすべての相続人TypeWithKeywordにしようとしましたが、結果は常にnullです。

もちろん、型名の文字列から "class"、 "struct"などをすべて削除できますが、これを "clang way"で解決したいと思います。

答えて

1

答えは簡単でした。 QualType::getAsString()の代わりに、QualType::getAsString (const PrintingPolicy &Policy)が必要です。 だから、コード:

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

PrintingPolicyのフィールドを変更することなく、うまく動作します。

関連する問題