/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #pragma once #include #include typedef std::chrono::duration> cmDuration; /* * This function will return number of seconds in the requested type T. * * A duration_cast from duration to duration 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 T cmDurationTo(const cmDuration& duration); #ifndef CMDURATION_CPP extern template int cmDurationTo(const cmDuration&); extern template unsigned int cmDurationTo(const cmDuration&); #endif