在C ++中,可以定义很多东西,这些东西将在代码的其他部分隐式执行。最突出的例子可能是:
我实际上很喜欢这些功能,因为它们使代码不那么冗长。同样清楚的是,应谨慎使用它们,以避免意外或什至令人惊讶的行为。
但是我们如何分析使用这些功能的代码,或者甚至分析我们不知道是否存在这种情况的代码?
查找显式函数调用的所有引用相对容易。在大多数情况下,简单的文本搜索就足够了。对于重载的运算符,这显然不是很有帮助。
不幸的是,根据我的经验,IDE也不提供很多帮助。 (我主要使用VS 2015和2017。)
哪些技术有助于回答以下问题:
在一段代码中是否有任何重载的运算符或隐式构造函数调用?
在代码库中哪里使用了给定的重载运算符或隐式构造函数?
我知道您总是可以使用调试器来逐步执行代码,但是在进行整体分析时,这通常是不可能或太耗时的。