基于签名的C ++搜索

时间:2014-11-04 14:36:27

标签: c++ search reference static-analysis

是否有工具允许在类型签名上搜索C ++代码?有人最近向我指出了强大的Haskell工具Hoogle,我喜欢为我们的代码库提供类似的东西。

要扩展,我有兴趣进行以下类型的查询:

我有一个班级Foo,我知道有一个函数可以将它映射到关联的Bar,但我无法回想起该函数的名称。我希望能够提出一些问题:"给我一些Foo的所有功能,然后提供Bar

几点说明:

  • This is pretty much exactly my question,但是对于Java。不幸的是,那里提出的解决方案需要反思。

  • 似乎Doxygen有信息可以做这样的事情,但是,我不确定如何配置它来提供这个。有没有一种工具可以使用Doxygen XML来提供这种功能?

  • 模糊的答案是可以接受的! C ++具有足够复杂的特征集,该工具可能不是100%准确 - 但它可能仍然比没有好。

1 个答案:

答案 0 :(得分:2)

您可以测试CppDepend,它有一个强大的代码查询语言(CQLinq)来查询您想要的代码,例如在您的情况下,您可以像这样执行查询:

from m in Methods where m.Params.Where(p=>p.ParamType=="Foo").Count()>0
&& m.ReturnType.Name=="Bar"
select m