123456789101112131415161718192021222324 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #pragma once
- #include <chrono>
- #include <ratio>
- typedef std::chrono::duration<double, std::ratio<1>> cmDuration;
- /*
- * This function will return number of seconds in the requested type T.
- *
- * A duration_cast from duration<double> to duration<T> will not yield what
- * one might expect if the double representation does not fit into type T.
- * This function aims to safely convert, by clamping the double value between
- * the permissible valid values for T.
- */
- template <typename T>
- T cmDurationTo(const cmDuration& duration);
- #ifndef CMDURATION_CPP
- extern template int cmDurationTo<int>(const cmDuration&);
- extern template unsigned int cmDurationTo<unsigned int>(const cmDuration&);
- #endif
|