namespace A {
namespace B {
class C {
class D {
};
};
}
}
CXXRecords
对于带有 getNameAsString
的 D
将返回 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
会很好,但是
简单的字符串操作就可以解决这个问题。
关于c++ - CXXRecords getNameAsString,如何获取全名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25701536/