有没有一种方法可以唯一地标识CDT AST中的功能定义节点?
void g() { ... }
void f() {
g();
}
我需要以某种结构存储f
和g
的函数定义节点,然后,当我来到g
的函数调用节点时,我需要检查是否节点对应于g
的函数定义节点。
现在,我通过存储函数的名称来做到这一点。 问题是我无法正确处理以下情况:
void f() {}
class F {
void f() {}
};
答案 0 :(得分:1)
我建议以下内容:
IASTName.resolveBinding()
ICPPFunction
的实例,该实例扩展了ICPPBinding
。 (我假设您提到class
时,这是C ++代码。)ICPPBinding.getQualifiedName()
作为函数的唯一标识符。在您的示例中,两个函数将具有不同的限定名称,f
与F::f
。