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
将找到并修复这些重叠。