从libclang的CXType

时间:2017-07-21 13:47:06

标签: libclang

我使用libclang来解析源文件,并引用某些类型为CXType,比如它是“const std::__1::basic_string<char>”(由clang_getTypeSpelling报告)。如何引用相同类型但没有const限定符?

1 个答案:

答案 0 :(得分:0)

我能够通过访问该类型的游标的孩子来做到这一点。例如,给定CXCursor'cursor',

CXType type = clang_getCursorType(cursor);
if (clang_isConstQualifiedType(type))
{
    auto RemoveConstFromType = [](CXCursor c, CXCursor, CXClientData d)
    {
        *(CXType*)d = clang_getCursorType(c);
        return (clang_isConstQualifiedType(*(CXType*)d) ? CXChildVisit_Recurse : CXChildVisit_Break);
    };
    clang_visitChildren(cursor, RemoveConstFromType, &type);
}

我希望能有所帮助。 =)