Удалить классификаторы типа CV из CXType libclang
Я использую libclang для разбора исходного файла и получения ссылки на некоторый тип как CXType
скажи "const std::__1::basic_string<char>
"(как сообщает clang_getTypeSpelling
). Как я могу получить ссылку на тот же тип, но без квалификатора const?
0 ответов
Я смог сделать это, посетив дочерние элементы курсора типа. Например, учитывая курсор CXCursor,
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);
}
Надеюсь, это поможет. знак равно