对于某些项目,我想做一些统计,比如公共方法和函数的列表。很好的选择可能是使用CppDepend及其内置查询语言。
我们的(遗留)项目库有应用程序。每个应用程序都在它自己的目录中,有项目文件和一些带有源代码的子目录。某些子目录在多个应用程序中共享(使用svn:externals)。我的目标是只在这样的共享目录中计数方法和函数一次。
例如,如果文件my_file.h包含三个函数,并被签出到三个不同的本地目录中,那么我仍然希望只向我的统计数据添加3个,而不是9个。
有没有办法告诉cpp哪些目录/文件被签出到多个本地目录中,以便只计算它们一次?
发布于 2018-06-01 14:22:53
为了避免计算相同的方法,可以向cqlinq查询添加不同的筛选器,如下所示:
from m in JustMyCode.Methods.Distinct(m=>m.FullName)
select m
因此,每个方法将被计算一次,或者通过添加源文件名的筛选器,可以改进查询以避免具有相同签名但不相同的筛选方法。
from m in JustMyCode.Methods.Distinct(m=>new {m.FullName,m.SourceDecl.SourceFile.FileName})
select m
https://stackoverflow.com/questions/50506658
复制相似问题