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
来明确执行此操作。