# Extra Clang Tools 18.1.8 documentation

## clang-tidy - abseil-duration-factory-scale

# abseil-duration-factory-scale

Checks for cases where arguments to `absl::Duration` factory functions are scaled internally and could be changed to a different factory function. This check also looks for arguments with a zero value and suggests using `absl::ZeroDuration()` instead.

Examples:

    // Original - Internal multiplication.
    int x;
    absl::Duration d = absl::Seconds(60 * x);

    // Suggested - Use absl::Minutes instead.
    absl::Duration d = absl::Minutes(x);

    // Original - Internal division.
    int y;
    absl::Duration d = absl::Milliseconds(y / 1000.);

    // Suggested - Use absl:::Seconds instead.
    absl::Duration d = absl::Seconds(y);

    // Original - Zero-value argument.
    absl::Duration d = absl::Hours(0);

    // Suggested = Use absl::ZeroDuration instead
    absl::Duration d = absl::ZeroDuration();