/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file LICENSE.rst or https://cmake.org/licensing for details. */ #pragma once #include #include using cmDuration = std::chrono::duration>; /* * 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(cmDuration const& duration); #ifndef CMDURATION_CPP extern template int cmDurationTo(cmDuration const&); extern template unsigned int cmDurationTo(cmDuration const&); #endif