namespace A {
namespace B {
class C {
class D {
};
};
}
}
对于CXXRecords
D
,{p> getNameAsString
会返回D
如何获取全名::A::B::C::D
?
我试图以递归方式调用getParent
但我无法获取命名空间..
答案 0 :(得分:3)
经过大量搜索并尝试找到
QualType::getAsString(cl->getASTContext().getTypeDeclType(const_cast<CXXRecordDecl*>(cl)).split())
作为可用的解决方案,它将输出class A::B::C::D
对于namespace using std; vector<int> g;
,它会输出class std::vector<int>
。
只有std::vector
会很好,但是
简单的字符串操作将解决这个问题。
答案 1 :(得分:0)
假设您的RecordDecl指针变量名为recordDecl,则可以简单地使用
recordDecl->getQualifiedNameAsString()