23 General utilities library [utilities]

23.17 Time utilities [time]

23.17.4 Time-related traits [time.traits] treat_­as_­floating_­point [time.traits.is_fp]

template <class Rep> struct treat_as_floating_point : is_floating_point<Rep> { };

The duration template uses the treat_­as_­floating_­point trait to help determine if a duration object can be converted to another duration with a different tick period. If treat_­as_­floating_­point_­v<Rep> is true, then implicit conversions are allowed among durations. Otherwise, the implicit convertibility depends on the tick periods of the durations. [Note: The intention of this trait is to indicate whether a given class behaves like a floating-point type, and thus allows division of one value by another with acceptable loss of precision. If treat_­as_­floating_­point_­v<Rep> is false, Rep will be treated as if it behaved like an integral type for the purpose of these conversions. end note]