| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| file Copyright.txt or https://cmake.org/licensing for details. */ |
| T cmDurationTo(const cmDuration& duration) |
| /* This works because the comparison operators for duration rely on |
| * So for example duration<int>::max() gets promoted to a duration<double>, |
| * which can then be safely compared. |
| if (duration >= std::chrono::duration<T>::max()) { |
| return std::chrono::duration<T>::max().count(); |
| if (duration <= std::chrono::duration<T>::min()) { |
| return std::chrono::duration<T>::min().count(); |
| // Ensure number of seconds by defining ratio<1> |
| return std::chrono::duration_cast<std::chrono::duration<T, std::ratio<1>>>( |
| template int cmDurationTo<int>(const cmDuration&); |
| template unsigned int cmDurationTo<unsigned int>(const cmDuration&); |