Sou*_*jee 5 c++ clang libtooling
如何从 clang 中的 FunctionDecl 类中以字符串形式获取参数信息。我正在尝试,但对这么多继承感到困惑。此外,他们的编译器说 getReturnType() 不是 FunctionDecl 的成员,但 doxygen 文档另有说明。请帮忙。 http://clang.llvm.org/doxygen/classclang_1_1FunctionDecl.html
using namespace std;
using namespace clang;
using namespace clang::driver;
using namespace clang::tooling;
using namespace llvm;
.......
class ExampleVisitor : public RecursiveASTVisitor<ExampleVisitor>
{
......
virtual bool VisitFunctionDecl(FunctionDecl *func)
{
numFunctions++;
string funcName = func->getNameInfo().getName().getAsString();
string retName = func->getReturnType().getAsString();
...
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
错误:-
“class clang::FunctionDecl”没有名为“getReturnType”的成员
根据您是否需要限定名称或非限定名称,您可以将返回类型和参数名称字符串化,如下所示
std::string retType = F->getReturnType().getAsString();
std::string arg0;
if(F->getNumParams() > 0)
arg0 = F->parameters()[0]->getQualifiedNameAsString();
Run Code Online (Sandbox Code Playgroud)
查看提供的getAsString()方法。
编辑:在您发表评论后,我发现您没有最新的 Clang 源代码。请在重试之前检查一下。祝你好运!
| 归档时间: |
|
| 查看次数: |
2242 次 |
| 最近记录: |