NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
持续时间

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

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

类型定义

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

函数

template<typename ToDur, typename Rep, typename Period, enable_if_t< is_duration< ToDur >::value, int > = 0>
constexpr ToDur neforce::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 > > neforce::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 > > neforce::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 > neforce::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 > neforce::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 > neforce::operator/ (const duration< Rep1, Period > &value, const Rep2 &scalar)
 除法运算符(持续时间 / 标量)
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr common_type_t< Rep1, Rep2 > neforce::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 > neforce::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 > > neforce::operator% (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 取模运算符(持续时间 % 持续时间)
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr bool neforce::operator== (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 等于比较运算符
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr bool neforce::operator!= (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 不等于比较运算符
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr bool neforce::operator< (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 小于比较运算符
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr bool neforce::operator<= (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 小于等于比较运算符
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr bool neforce::operator> (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 大于比较运算符
template<typename Rep1, typename Period1, typename Rep2, typename Period2>
constexpr bool neforce::operator>= (const duration< Rep1, Period1 > &lhs, const duration< Rep2, Period2 > &rhs)
 大于等于比较运算符
template<typename ToDur, typename Rep, typename Period>
constexpr enable_if_t< is_duration_v< ToDur >, ToDur > neforce::floor (const duration< Rep, Period > &dur)
 向下取整持续时间转换
template<typename ToDur, typename Rep, typename Period>
constexpr enable_if_t< is_duration_v< ToDur >, ToDur > neforce::ceil (const duration< Rep, Period > &dur)
 向上取整持续时间转换

变量

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

详细描述

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

函数说明

◆ ceil()

template<typename ToDur, typename Rep, typename Period>
enable_if_t< is_duration_v< ToDur >, ToDur > neforce::ceil ( const duration< Rep, Period > & dur)
nodiscardconstexpr

向上取整持续时间转换

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

在文件 duration.hpp705 行定义.

引用了 ceil() , 以及 time_cast().

◆ floor()

template<typename ToDur, typename Rep, typename Period>
enable_if_t< is_duration_v< ToDur >, ToDur > neforce::floor ( const duration< Rep, Period > & dur)
nodiscardconstexpr

向下取整持续时间转换

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

在文件 duration.hpp688 行定义.

引用了 floor() , 以及 time_cast().

◆ operator!=()

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

不等于比较运算符

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

在文件 duration.hpp611 行定义.

引用了 operator!=().

◆ 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 > neforce::operator% ( const duration< Rep1, Period > & value,
const Rep2 & scalar )
constexpr

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

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

在文件 duration.hpp558 行定义.

引用了 count() , 以及 operator%().

被这些函数引用 operator%() , 以及 operator%().

◆ operator%() [2/2]

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

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

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

在文件 duration.hpp575 行定义.

引用了 count() , 以及 operator%().

◆ operator*() [1/2]

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

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

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

在文件 duration.hpp492 行定义.

引用了 count() , 以及 operator*().

被这些函数引用 operator*(), operator*(), operator*() , 以及 operator*().

◆ operator*() [2/2]

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

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

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

在文件 duration.hpp508 行定义.

引用了 operator*().

◆ operator+()

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

加法运算符

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

在文件 duration.hpp456 行定义.

引用了 count() , 以及 operator+().

◆ operator-()

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

减法运算符

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

在文件 duration.hpp475 行定义.

引用了 count() , 以及 operator-().

◆ 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 > neforce::operator/ ( const duration< Rep1, Period > & value,
const Rep2 & scalar )
constexpr

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

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

在文件 duration.hpp524 行定义.

引用了 count() , 以及 operator/().

被这些函数引用 operator/() , 以及 operator/().

◆ operator/() [2/2]

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

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

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

在文件 duration.hpp540 行定义.

引用了 operator/().

◆ operator<()

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

小于比较运算符

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

在文件 duration.hpp626 行定义.

◆ operator<=()

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

小于等于比较运算符

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

在文件 duration.hpp644 行定义.

◆ operator==()

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

等于比较运算符

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

在文件 duration.hpp593 行定义.

引用了 operator==().

◆ operator>()

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

大于比较运算符

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

在文件 duration.hpp659 行定义.

◆ operator>=()

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

大于等于比较运算符

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

在文件 duration.hpp674 行定义.

◆ time_cast()

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

持续时间类型转换

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

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

在文件 duration.hpp144 行定义.

引用了 time_cast().

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