使用隐式构造函数和重载运算符分析C ++代码

时间:2019-02-02 10:13:48

标签: c++ visual-studio operator-overloading static-analysis

在C ++中,可以定义很多东西,这些东西将在代码的其他部分隐式执行。最突出的例子可能是:

  • 运算符超载
  • 隐式构造函数调用

我实际上很喜欢这些功能,因为它们使代码不那么冗长。同样清楚的是,应谨慎使用它们,以避免意外或什至令人惊讶的行为。

但是我们如何分析使用这些功能的代码,或者甚至分析我们不知道是否存在这种情况的代码?

查找显式函数调用的所有引用相对容易。在大多数情况下,简单的文本搜索就足够了。对于重载的运算符,这显然不是很有帮助。

不幸的是,根据我的经验,IDE也不提供很多帮助。 (我主要使用VS 2015和2017。)

哪些技术有助于回答以下问题:

  • 在一段代码中是否有任何重载的运算符或隐式构造函数调用?

  • 在代码库中哪里使用了给定的重载运算符或隐式构造函数?

我知道您总是可以使用调试器来逐步执行代码,但是在进行整体分析时,这通常是不可能或太耗时的。

0 个答案:

没有答案