namespace A {
namespace B {
class C {
class D {
};
};
}
}
CXXRecords
与D
的[getNameAsString
一起返回D
。如何获得全名::A::B::C::D
?
我试图递归调用getParent
,但无法获得名称空间。
经过大量搜索并尝试后发现
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
会很好,但是简单的字符串操作将解决此问题。
假设您的RecordDecl指针变量名为recordDecl,您可以简单地使用recordDecl->getQualifiedNameAsString()