MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
持续时间

持续时间类型及其辅助函数 更多...

struct  is_duration< T >
 检查是否为持续时间类型 更多...
class  duration< Rep, Period >
 持续时间类模板 更多...

类型定义

using nanoseconds = duration<int64_t, nano>
 纳秒持续时间
using microseconds = duration<int64_t, micro>
 微秒持续时间
using milliseconds = duration<int64_t, milli>
 毫秒持续时间
using seconds = duration<int64_t>
 秒持续时间
using minutes = duration<int64_t, ratio<60>>
 分钟持续时间
using hours = duration<int64_t, ratio<3600>>
 小时持续时间
using days = duration<int64_t, ratio<86400>>
 天持续时间
using weeks = duration<int64_t, ratio<604800>>
 周持续时间
using years = duration<int64_t, ratio<31556952>>
 年持续时间(天文年)
using months = duration<int64_t, ratio<2629746>>
 月持续时间(平均月)

函数

template<typename ToDur, typename Rep, typename Period, enable_if_t< is_duration< ToDur >::value, int > = 0>
constexpr ToDur time_cast (const duration< Rep, Period > &value)
 持续时间类型转换
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr common_type_t< duration< Rep1, Period1 >, duration< Rep2, Period2 > > operator+ (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 加法运算符
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr common_type_t< duration< Rep1, Period1 >, duration< Rep2, Period2 > > operator- (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 减法运算符
template<typename Rep1, typename Period, typename Rep2>
constexpr duration< _INNER __common_rep_t< Rep1, Rep2 >, Period > operator* (const duration< Rep1, Period > &value, const Rep2 &scalar)
 乘法运算符(持续时间 * 标量)
template<typename Rep1, typename Rep2, typename Period>
constexpr duration< _INNER __common_rep_t< Rep2, Rep1 >, Period > operator* (const Rep1 &scalar, const duration< Rep2, Period > &value)
 乘法运算符(标量 * 持续时间)
template<typename Rep1, typename Period, typename Rep2>
constexpr duration< _INNER __common_rep_t< Rep1, enable_if_t<!is_duration_v< Rep2 >, Rep2 > >, Period > operator/ (const duration< Rep1, Period > &value, const Rep2 &scalar)
 除法运算符(持续时间 / 标量)
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr common_type_t< Rep1, Rep2 > operator/ (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 除法运算符(持续时间 / 持续时间)
template<typename Rep1, typename Period, typename Rep2>
constexpr duration< _INNER __common_rep_t< Rep1, enable_if_t<!is_duration_v< Rep2 >, Rep2 > >, Period > operator% (const duration< Rep1, Period > &value, const Rep2 &scalar)
 取模运算符(持续时间 % 标量)
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr common_type_t< duration< Rep1, Period1 >, duration< Rep2, Period2 > > operator% (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 取模运算符(持续时间 % 持续时间)
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr bool operator== (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 等于比较运算符
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr bool operator!= (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 不等于比较运算符
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr bool operator< (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 小于比较运算符
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr bool operator<= (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 小于等于比较运算符
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr bool operator> (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 大于比较运算符
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr bool operator>= (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 大于等于比较运算符
template<typename ToDur, typename Rep, typename Period>
MSTL_NODISCARD constexpr enable_if_t< is_duration_v< ToDur >, ToDur > floor (const duration< Rep, Period > &dur)
 向下取整持续时间转换
template<typename ToDur, typename Rep, typename Period>
MSTL_NODISCARD constexpr enable_if_t< is_duration_v< ToDur >, ToDur > ceil (const duration< Rep, Period > &dur)
 向上取整持续时间转换

变量

template<typename T>
MSTL_INLINE17 constexpr bool is_duration_v = is_duration<T>::value
 is_duration的便捷变量模板

详细描述

持续时间类型及其辅助函数

函数说明

◆ ceil()

template<typename ToDur, typename Rep, typename Period>
MSTL_NODISCARD constexpr enable_if_t< is_duration_v< ToDur >, ToDur > ceil ( const duration< Rep, Period > & dur)
constexpr

向上取整持续时间转换

模板参数
ToDur目标持续时间类型
Rep源数值类型
Period源时间单位比例
参数
dur源持续时间
返回
向上取整转换后的持续时间

在文件 duration.hpp723 行定义.

引用了 time_cast().

◆ floor()

template<typename ToDur, typename Rep, typename Period>
MSTL_NODISCARD constexpr enable_if_t< is_duration_v< ToDur >, ToDur > floor ( const duration< Rep, Period > & dur)
constexpr

向下取整持续时间转换

模板参数
ToDur目标持续时间类型
Rep源数值类型
Period源时间单位比例
参数
dur源持续时间
返回
向下取整转换后的持续时间

在文件 duration.hpp705 行定义.

引用了 time_cast().

◆ operator!=()

template<typename Rep1, typename Period1, typename Rep2, typename Period2>
bool operator!= ( const duration< Rep1, Period1 > & lhs,
const duration< Rep2, Period2 > & rhs )
constexpr

不等于比较运算符

模板参数
Rep1第一个数值类型
Period1第一个时间单位比例
Rep2第二个数值类型
Period2第二个时间单位比例
参数
lhs左操作数
rhs右操作数
返回
两个持续时间是否不相等

在文件 duration.hpp627 行定义.

◆ operator%() [1/2]

template<typename Rep1, typename Period, typename Rep2>
duration< _INNER __common_rep_t< Rep1, enable_if_t<!is_duration_v< Rep2 >, Rep2 > >, Period > operator% ( const duration< Rep1, Period > & value,
const Rep2 & scalar )
constexpr

取模运算符(持续时间 % 标量)

模板参数
Rep1数值类型
Period时间单位比例
Rep2标量类型
参数
value持续时间
scalar标量
返回
持续时间对标量取模的结果

在文件 duration.hpp574 行定义.

引用了 count().

◆ operator%() [2/2]

template<typename Rep1, typename Period1, typename Rep2, typename Period2>
common_type_t< duration< Rep1, Period1 >, duration< Rep2, Period2 > > operator% ( const duration< Rep1, Period1 > & lhs,
const duration< Rep2, Period2 > & rhs )
constexpr

取模运算符(持续时间 % 持续时间)

模板参数
Rep1第一个数值类型
Period1第一个时间单位比例
Rep2第二个数值类型
Period2第二个时间单位比例
参数
lhs左操作数
rhs右操作数
返回
左持续时间对右持续时间取模的结果

在文件 duration.hpp591 行定义.

引用了 count().

◆ operator*() [1/2]

template<typename Rep1, typename Period, typename Rep2>
duration< _INNER __common_rep_t< Rep1, Rep2 >, Period > operator* ( const duration< Rep1, Period > & value,
const Rep2 & scalar )
constexpr

乘法运算符(持续时间 * 标量)

模板参数
Rep1数值类型
Period时间单位比例
Rep2标量类型
参数
value持续时间
scalar标量
返回
持续时间乘以标量的结果

在文件 duration.hpp508 行定义.

引用了 count().

◆ operator*() [2/2]

template<typename Rep1, typename Rep2, typename Period>
duration< _INNER __common_rep_t< Rep2, Rep1 >, Period > operator* ( const Rep1 & scalar,
const duration< Rep2, Period > & value )
constexpr

乘法运算符(标量 * 持续时间)

模板参数
Rep1标量类型
Rep2数值类型
Period时间单位比例
参数
scalar标量
value持续时间
返回
标量乘以持续时间的结果

在文件 duration.hpp524 行定义.

◆ operator+()

template<typename Rep1, typename Period1, typename Rep2, typename Period2>
common_type_t< duration< Rep1, Period1 >, duration< Rep2, Period2 > > operator+ ( const duration< Rep1, Period1 > & lhs,
const duration< Rep2, Period2 > & rhs )
constexpr

加法运算符

模板参数
Rep1第一个数值类型
Period1第一个时间单位比例
Rep2第二个数值类型
Period2第二个时间单位比例
参数
lhs左操作数
rhs右操作数
返回
两个持续时间的和

在文件 duration.hpp471 行定义.

引用了 count().

◆ operator-()

template<typename Rep1, typename Period1, typename Rep2, typename Period2>
common_type_t< duration< Rep1, Period1 >, duration< Rep2, Period2 > > operator- ( const duration< Rep1, Period1 > & lhs,
const duration< Rep2, Period2 > & rhs )
constexpr

减法运算符

模板参数
Rep1第一个数值类型
Period1第一个时间单位比例
Rep2第二个数值类型
Period2第二个时间单位比例
参数
lhs左操作数
rhs右操作数
返回
两个持续时间的差

在文件 duration.hpp490 行定义.

引用了 count().

◆ operator/() [1/2]

template<typename Rep1, typename Period, typename Rep2>
duration< _INNER __common_rep_t< Rep1, enable_if_t<!is_duration_v< Rep2 >, Rep2 > >, Period > operator/ ( const duration< Rep1, Period > & value,
const Rep2 & scalar )
constexpr

除法运算符(持续时间 / 标量)

模板参数
Rep1数值类型
Period时间单位比例
Rep2标量类型
参数
value持续时间
scalar标量
返回
持续时间除以标量的结果

在文件 duration.hpp539 行定义.

引用了 count().

◆ operator/() [2/2]

template<typename Rep1, typename Period1, typename Rep2, typename Period2>
common_type_t< Rep1, Rep2 > operator/ ( const duration< Rep1, Period1 > & lhs,
const duration< Rep2, Period2 > & rhs )
constexpr

除法运算符(持续时间 / 持续时间)

模板参数
Rep1第一个数值类型
Period1第一个时间单位比例
Rep2第二个数值类型
Period2第二个时间单位比例
参数
lhs左操作数
rhs右操作数
返回
两个持续时间的比值

在文件 duration.hpp556 行定义.

◆ operator<()

template<typename Rep1, typename Period1, typename Rep2, typename Period2>
bool operator< ( const duration< Rep1, Period1 > & lhs,
const duration< Rep2, Period2 > & rhs )
constexpr

小于比较运算符

模板参数
Rep1第一个数值类型
Period1第一个时间单位比例
Rep2第二个数值类型
Period2第二个时间单位比例
参数
lhs左操作数
rhs右操作数
返回
左持续时间是否小于右持续时间

在文件 duration.hpp642 行定义.

◆ operator<=()

template<typename Rep1, typename Period1, typename Rep2, typename Period2>
bool operator<= ( const duration< Rep1, Period1 > & lhs,
const duration< Rep2, Period2 > & rhs )
constexpr

小于等于比较运算符

模板参数
Rep1第一个数值类型
Period1第一个时间单位比例
Rep2第二个数值类型
Period2第二个时间单位比例
参数
lhs左操作数
rhs右操作数
返回
左持续时间是否小于等于右持续时间

在文件 duration.hpp660 行定义.

◆ operator==()

template<typename Rep1, typename Period1, typename Rep2, typename Period2>
bool operator== ( const duration< Rep1, Period1 > & lhs,
const duration< Rep2, Period2 > & rhs )
constexpr

等于比较运算符

模板参数
Rep1第一个数值类型
Period1第一个时间单位比例
Rep2第二个数值类型
Period2第二个时间单位比例
参数
lhs左操作数
rhs右操作数
返回
两个持续时间是否相等

在文件 duration.hpp609 行定义.

◆ operator>()

template<typename Rep1, typename Period1, typename Rep2, typename Period2>
bool operator> ( const duration< Rep1, Period1 > & lhs,
const duration< Rep2, Period2 > & rhs )
constexpr

大于比较运算符

模板参数
Rep1第一个数值类型
Period1第一个时间单位比例
Rep2第二个数值类型
Period2第二个时间单位比例
参数
lhs左操作数
rhs右操作数
返回
左持续时间是否大于右持续时间

在文件 duration.hpp675 行定义.

◆ operator>=()

template<typename Rep1, typename Period1, typename Rep2, typename Period2>
bool operator>= ( const duration< Rep1, Period1 > & lhs,
const duration< Rep2, Period2 > & rhs )
constexpr

大于等于比较运算符

模板参数
Rep1第一个数值类型
Period1第一个时间单位比例
Rep2第二个数值类型
Period2第二个时间单位比例
参数
lhs左操作数
rhs右操作数
返回
左持续时间是否大于等于右持续时间

在文件 duration.hpp690 行定义.

◆ time_cast()

template<typename ToDur, typename Rep, typename Period, enable_if_t< is_duration< ToDur >::value, int > = 0>
ToDur time_cast ( const duration< Rep, Period > & value)
constexpr

持续时间类型转换

模板参数
ToDur目标持续时间类型
Rep源数值类型
Period源时间单位比例
参数
value源持续时间
返回
转换后的持续时间

将一种持续时间类型转换为另一种,考虑时间单位的转换。

在文件 duration.hpp147 行定义.

引用了 _INNER.

被这些函数引用 ceil(), duration< Rep, Period >::duration(), duration< common_type_t< Rep >, typename Period::type >::duration(), floor(), system_clock::from_seconds(), time_cast() , 以及 steady_clock::to_system().