gpt4 book ai didi

libclang - 从 libclang 的 CXType 中删除 CV 类型限定符

转载 作者:行者123 更新时间:2023-12-02 13:46:31 24 4
gpt4 key购买 nike

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

最佳答案

我可以通过访问类型的光标的子代来做到这一点。例如,给定 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);
}

我希望这会有所帮助。 =)

关于libclang - 从 libclang 的 CXType 中删除 CV 类型限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45239361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com