| 123456789101112131415161718192021222324252627 | 
							- /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 
-    file Copyright.txt or https://cmake.org/licensing for details.  */
 
- #define CMDURATION_CPP
 
- #include "cmDuration.h"
 
- template <typename T>
 
- T cmDurationTo(const cmDuration& duration)
 
- {
 
-   /* This works because the comparison operators for duration rely on
 
-    * std::common_type.
 
-    * 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>>>(
 
-            duration)
 
-     .count();
 
- }
 
- template int cmDurationTo<int>(const cmDuration&);
 
- template unsigned int cmDurationTo<unsigned int>(const cmDuration&);
 
 
  |