在C++代码中搜索对象的实例化位置



必须使用一个巨大的代码库,其中数据通过多层和三个框架进行传输,并且通常需要找到那些特定的.cpp文件和行,其中自定义类或结构的实例实际上是"创建"的(抱歉缺少更好的词(。 在IDE(在我的例子中是VSCode(中使用"搜索所有引用"会产生太多其他结果。

相当于我在 Java 中寻找的只是"新CLASS_NAME",因为这是在 Java 中实例化类的唯一语法。但C++更复杂...

有什么办法可以做到这一点吗?当通过非标准容器创建实例时,它也可以工作吗?

我做了一个正则表达式,用于在C++中查找不同可能类型的实例化;

(^|s?)ClassName(s?)+(|(^|s?)ClassName(s+)([a-zA-Z_][a-zA-Z0-9_]{0,31})(s+)=( ?|s+)|(^|s?)ClassName(s+)([a-zA-Z_][a-zA-Z0-9_]{0,31})(s?)+;|new(s+)ClassName|(^|s?)ClassName(s+)([a-zA-Z_][a-zA-Z0-9_]{0,31})(s?)+(|(^|s?)ClassName<

正则表达式查找以下字符串,我在 VSCode 中针对"类名"类名"类对其进行了测试,并一起使用正则表达式和匹配大小写;

  • 类名(
  • 类名变量名;
  • 类名变量名 =
  • 新类名
  • 类名变量名(
  • 类名<(模板(

我不太确定这是否会涵盖类实例化的所有情况(如果您找到它们,只需更新正则表达式(,但我认为它应该适用于使用类名或其构造函数的那些情况。

这看起来像什么样子的例子。

最新更新