namespace A {
namespace B {
class C {
class D {
};
};
}
}
CXXRecords因为DwithgetNameAsString会返回D。
我怎样才能得到全名::A::B::C::D?
我试图递归调用getParent,但我无法获得命名空间..
namespace A {
namespace B {
class C {
class D {
};
};
}
}
CXXRecords因为DwithgetNameAsString会返回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()