abseil-duration-conversion-cast

检查 absl::Duration 转换函数的强制类型转换,并推荐使用正确的转换函数。

示例

// Original - Cast from a double to an integer
absl::Duration d;
int i = static_cast<int>(absl::ToDoubleSeconds(d));

// Suggested - Use the integer conversion function directly.
int i = absl::ToInt64Seconds(d);


// Original - Cast from a double to an integer
absl::Duration d;
double x = static_cast<double>(absl::ToInt64Seconds(d));

// Suggested - Use the integer conversion function directly.
double x = absl::ToDoubleSeconds(d);

注意:在第二个示例中,建议的修复可能导致不同的结果,因为转换为整数可能会截断。在实践中,这种情况非常罕见,您应该使用 absl::Trunc 来明确执行此操作。