我已经使用 Clang 实现了 AST 访问器。 通过这段代码,我可以正确地检索函数调用名称。
virtual bool VisitFunctionDecl(FunctionDecl *func)
{
numFunctions++;
string funcName = func->getNameInfo().getName().getAsString();
string funcType = func->getType().getAsString();
APIs << funcType << endl;
APIs << "\n" << funcName <<": ";
return true;
}
我还想提取函数声明类型。例如 int my_func(int a, int b){..} 我想提取类型 int。它的实现方式返回给我除了名称之外的整个函数声明。上面这段代码在 funcType 中会返回 int (int a, int b)
我该如何解决这个问题?? 谢谢!
最佳答案
听起来您正在尝试查找 return 类型,而不是函数的声明类型。使用 getReturnType()
为此。
关于c++ - 使用 AST visitor clang 获取函数声明类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37913253/