1#ifndef MSTL_CORE_TIME_TIME_POINT_HPP__
2#define MSTL_CORE_TIME_TIME_POINT_HPP__
14template <
typename Clock,
typename Dur =
typename Clock::duration>
29template <
typename CommonT,
typename Clock,
typename Dummy =
void>
30struct __timepoint_common_type {};
32template <
typename CommonT,
typename Clock>
33struct __timepoint_common_type<CommonT, Clock,
void_t<typename CommonT::type>> {
34 using type = time_point<Clock, typename CommonT::type>;
40template <
typename Clock,
typename Dur1,
typename Dur2>
42 :
_INNER __timepoint_common_type<common_type<Dur1, Dur2>, Clock>
45template <
typename Clock,
typename Dur>
47 using type = time_point<Clock, Dur>;
50template <
typename Clock,
typename Dur>
52 using type = time_point<Clock, Dur>;
71template <
typename ToDur,
typename Clock,
typename Dur, enable_if_t<is_duration_v<ToDur>,
int> = 0>
84template <
typename Clock,
typename Dur>
90 using rep =
typename duration_type::rep;
91 using period =
typename duration_type::period;
113 template <
typename Dur2,
typename = enable_if_t<is_convertible_v<Dur2, duration_type>>>
115 : value_(value.value_) {}
229template <
typename Rep,
typename Period>
230template <
typename Clock,
typename Dur,
typename Dummy>
244template <
typename Clock,
typename Dur1,
typename Rep2,
typename Period2>
263template <
typename Rep1,
typename Period1,
typename Clock,
typename Dur2>
282template <
typename Clock,
typename Dur1,
typename Rep2,
typename Period2>
300template <
typename Clock,
typename Dur1,
typename Dur2>
315template <
typename Clock,
typename Dur1,
typename Dur2>
329template <
typename Clock,
typename Dur1,
typename Dur2>
331 return !(lhs == rhs);
343template <
typename Clock,
typename Dur1,
typename Dur2>
357template <
typename Clock,
typename Dur1,
typename Dur2>
371template <
typename Clock,
typename Dur1,
typename Dur2>
385template <
typename Clock,
typename Dur1,
typename Dur2>
MSTL_INLINE17 constexpr bool is_duration_v
is_duration的便捷变量模板
constexpr ToDur time_cast(const duration< Rep, Period > &value)
持续时间类型转换
#define _MSTL
全局命名空间MSTL前缀
#define MSTL_END_INNER__
结束inner命名空间
#define _INNER
inner命名空间前缀
#define MSTL_END_NAMESPACE__
结束全局命名空间MSTL
#define MSTL_BEGIN_NAMESPACE__
开始全局命名空间MSTL
#define MSTL_BEGIN_INNER__
开始inner命名空间
constexpr bool operator>=(const time_point< Clock, Dur1 > &lhs, const time_point< Clock, Dur2 > &rhs)
大于等于比较运算符
constexpr bool operator!=(const time_point< Clock, Dur1 > &lhs, const time_point< Clock, Dur2 > &rhs)
不等于比较运算符
constexpr time_point< Clock, common_type_t< Dur1, duration< Rep2, Period2 > > > operator-(const time_point< Clock, Dur1 > &lhs, const duration< Rep2, Period2 > &rhs)
减法运算符(时间点 - 持续时间)
constexpr time_point< Clock, ToDur > time_cast(const time_point< Clock, Dur > &time_point_value)
时间点类型转换
constexpr bool operator>(const time_point< Clock, Dur1 > &lhs, const time_point< Clock, Dur2 > &rhs)
大于比较运算符
constexpr time_point< Clock, common_type_t< Dur1, duration< Rep2, Period2 > > > operator+(const time_point< Clock, Dur1 > &lhs, const duration< Rep2, Period2 > &rhs)
加法运算符(时间点 + 持续时间)
constexpr bool operator<=(const time_point< Clock, Dur1 > &lhs, const time_point< Clock, Dur2 > &rhs)
小于等于比较运算符
constexpr bool operator<(const time_point< Clock, Dur1 > &lhs, const time_point< Clock, Dur2 > &rhs)
小于比较运算符
constexpr bool operator==(const time_point< Clock, Dur1 > &lhs, const time_point< Clock, Dur2 > &rhs)
等于比较运算符
typename common_type< Types... >::type common_type_t
common_type的便捷别名
constexpr duration()=default
默认构造函数
typename duration_type::period period
时间单位比例
constexpr time_point()
默认构造函数
constexpr time_point & operator++()
前置自增运算符
constexpr time_point(const duration_type &dur)
从持续时间构造
constexpr time_point & operator+=(const duration_type &dur)
加法赋值运算符
constexpr time_point(const time_point< clock_type, Dur2 > &value)
从其他时间点构造
static constexpr time_point max() noexcept
获取最大时间点
constexpr duration_type since_epoch() const noexcept
获取自纪元以来的时间
constexpr time_point & operator-=(const duration_type &dur)
减法赋值运算符
typename duration_type::rep rep
数值类型
static constexpr time_point min() noexcept
获取最小时间点
constexpr time_point & operator--()
前置自减运算符