abseil-duration-comparison¶
检查应该在 absl::Duration
域中进行的比较,而不是在浮点数或整数域中进行。
注意:在将 Duration
转换为整数并与浮点值比较的情况下,在 Duration
转换期间的截断可能会产生不同的结果。在实践中,这种情况非常罕见,但仍然表明应该修复的错误。
示例
// Original - Comparison in the floating point domain
double x;
absl::Duration d;
if (x < absl::ToDoubleSeconds(d)) ...
// Suggested - Compare in the absl::Duration domain instead
if (absl::Seconds(x) < d) ...
// Original - Comparison in the integer domain
int x;
absl::Duration d;
if (x < absl::ToInt64Microseconds(d)) ...
// Suggested - Compare in the absl::Duration domain instead
if (absl::Microseconds(x) < d) ...