C++ 如何检索类:带有叮当声的函数
我有一个C++代码> Cx游标< /C>,它标记C++中函数声明的位置。我知道如何获取方法名或USR。。。但是如何获取类名(该方法是其中的一部分) 我正在用libclang解析的代码是:C++ 如何检索类:带有叮当声的函数,c++,clang,libclang,C++,Clang,Libclang,我有一个C++代码> Cx游标< /C>,它标记C++中函数声明的位置。我知道如何获取方法名或USR。。。但是如何获取类名(该方法是其中的一部分) 我正在用libclang解析的代码是: Number3D* ParseObjectFace::RetFaceVertex(){ // some code... } 当我尝试打印光标信息时,我使用: clang_getCString(clang_getCursorUSR(cr)); //output "c:@C@ParseObjectFac
Number3D* ParseObjectFace::RetFaceVertex(){
// some code...
}
当我尝试打印光标信息时,我使用:
clang_getCString(clang_getCursorUSR(cr));
//output "c:@C@ParseObjectFace@F@RetFaceVertex#"
clang_getCString(clang_getCursorDisplayName(cr));
//output "RetFaceVertex()"
如何获取“ParseObjectFace”(类名)?您可以使用它来检索游标的“语义父级”。从文件中引用:
游标的语义父级是语义上包含给定游标的游标。
[...]
在C::f
的越界定义中,语义父类是类C
,该函数是该类的成员
在您的示例中,类似于以下内容的操作应该有效:
// Retrieve the semantic parent (the class in this case)
CXCursor parent = clang_getCursorSemanticParent (cr);
clang_getCString (clang_getCursorDisplayName (parent));
// Should yield "ParseObjectFace"