|
- #pragma once
-
- #include <chrono>
- #include <utility>
-
- namespace cppcore
- {
-
- namespace __impl
- {
-
- /**
- * @brief Helper class to convert time values.
- */
- template<class From, class To>
- struct op_convert_time;
-
- }
-
- /**
- * @brief Cast a chrono duration to a timeval.
- *
- * @param[in] d Chrono duration to cast.
- *
- * @return Casted timeval.
- */
- template<typename T, typename Rep, typename Period>
- inline auto duration_cast(const std::chrono::duration<Rep, Period>& d)
- -> std::enable_if_t<std::is_same<T, ::timeval>::value, ::timeval>;
-
-
- /**
- * @brief Cast a chrono duration to a timespec.
- *
- * @param[in] d Chrono duration to cast.
- *
- * @return Casted timespec.
- */
- template<typename T, typename Rep, typename Period>
- inline auto duration_cast(const std::chrono::duration<Rep, Period>& d)
- -> std::enable_if_t<std::is_same<T, ::timespec>::value, ::timespec>;
-
- /**
- * @brief Cast a timeval to a chrono duration.
- *
- * @param[in] tv Timeval to cast to chrono duration.
- *
- * @return Casted chrono duration.
- */
- template<typename Duration>
- Duration duration_cast(const ::timeval& tv);
-
- /**
- * @brief Cast a timespec to a chrono duration.
- *
- * @param[in] ts Timespec to cast to chrono duration.
- *
- * @return Casted chrono duration.
- */
- template<typename Duration>
- Duration duration_cast(const ::timespec& ts);
-
- }
-
- #include "time.inl"
|