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
for
D
with
getNameAsString
将返回
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())