namespace A {
namespace B {
class C {
class D {
};
};
}
}
CXXRecords
因为D
withgetNameAsString
会返回D
。
我怎样才能得到全名::A::B::C::D
?
我试图递归调用getParent
,但我无法获得命名空间..
namespace A {
namespace B {
class C {
class D {
};
};
}
}
CXXRecords
因为D
withgetNameAsString
会返回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>
.
onlystd::vector
会很好,但简单的字符串操作将解决这个问题。
假设您的 RecordDecl 指针变量名为 recordDecl,您可以简单地使用
recordDecl->getQualifiedNameAsString()