C++ CXXRecords getNameAsString,如何获取全名?
C++ CXXRecords getNameAsString,如何获取全名?,c++,clang,llvm,llvm-clang,libtooling,C++,Clang,Llvm,Llvm Clang,Libtooling,CXXRecordsforDwithgetNameAsString将返回D 如何获取全名::A::B::C::D 我试图递归地调用getParent,但我无法获取名称空间。经过多次搜索和尝试,我找到了 namespace A { namespace B { class C { class D { }; }; } } QualType::getAsString(cl->getASTCo
CXXRecords
forD
withgetNameAsString
将返回D
如何获取全名
::A::B::C::D
我试图递归地调用
getParent
,但我无法获取名称空间。经过多次搜索和尝试,我找到了
namespace A {
namespace B {
class C {
class D {
};
};
}
}
QualType::getAsString(cl->getASTContext().getTypeDeclType(const_cast(cl)).split())
作为可用的解决方案,它将输出类别A::B::C::D
对于
名称空间,使用std;向量g代码>它将输出类std::vector
只有std::vector
就好了,但是
简单的字符串操作将解决此问题。假设您的RecordDecl指针变量名为RecordDecl,您只需使用
recordDecl->getQualifiedNameAsString()
QualType::getAsString(cl->getASTContext().getTypeDeclType(const_cast<CXXRecordDecl*>(cl)).split())