abseil-duration-subtraction

检查在 absl::Duration 域中应执行减法的情况。当减去两个值时,如果第一个值已知是来自 absl::Duration 的转换,我们可以推断第二个值也应解释为 absl::Duration,并明确地进行推断。

示例

// Original - Subtraction in the double domain
double x;
absl::Duration d;
double result = absl::ToDoubleSeconds(d) - x;

// Suggestion - Subtraction in the absl::Duration domain instead
double result = absl::ToDoubleSeconds(d - absl::Seconds(x));

// Original - Subtraction of two Durations in the double domain
absl::Duration d1, d2;
double result = absl::ToDoubleSeconds(d1) - absl::ToDoubleSeconds(d2);

// Suggestion - Subtraction in the absl::Duration domain instead
double result = absl::ToDoubleSeconds(d1 - d2);

注意:与其他 clang-tidy 检查一样,多个修复可能重叠(例如嵌套表达式的情况),因此并非所有出现都可以在一轮中转换。特别是,这可能发生在嵌套的减法表达式中。多次运行 clang-tidy 将找到并修复这些重叠。