小编0x9*_*7c8的帖子

如何计算在具有特定类型操作数的代码库中使用重载运算符的次数

我有一个模板类SafeInt<T> (由微软提供)。

理论上,此类可以用来代替 POD 整数类型,并且可以检测算术运算期间的任何整数溢出。

对于这个类,我编写了一些自定义模板化重载算术运算符(+、-、*、/)函数,其两个参数都是SafeInt<T>.

我将所有整数类型类型定义为 SafeInt 类类型。

我想在我的代码库中搜索所述二元运算符的实例,其中两个操作数都是 SafeInt 类型。

我能想到的一些方法

  1. 使用正则表达式进行字符串搜索并清除代码以检测两个操作数都是 SafeInt 对象的运算符使用实例。

  2. 编写一个 clang 工具并处理 AST 来执行此搜索(我还没有学会如何编写这样的工具。)

  3. 以某种方式添加一个计数器来计算自定义重载运算符实例化的次数。我花了很多时间尝试这个但似乎不起作用。

有人能建议更好的方法吗?

如果我需要澄清任何事情,请告诉我。

谢谢。

c++ templates static-analysis metaprogramming clang-static-analyzer

5
推荐指数
1
解决办法
567
查看次数