std::common_type(std::chrono::duration)
来自cppreference.com
工具库
日期和时间工具
时间点 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
时长 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
时钟 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
当天时刻 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
日历 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
时区 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chrono I/O |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(C++20)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
C 风格日期和时间 |
std::chrono::duration
成员函数 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
非成员函数 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
辅助类 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
在标头
<chrono>
定义
|
||
template <class Rep1, class Period1, class Rep2,
class Period2>
struct common_type<std::chrono::duration<Rep1, Period1>, |
(C++11 起) | |
暴露名为 type
的类型,它是二个 std::chrono::duration 的共用类型,其周期为
Period1
与 Period2
的最大公约数。
注解
产生的时长的周期能通过构成 Period1::num 和 Period2::num 的最大公约数与 Period1::den 和 Period2::den 的最小公倍数的 ratio
计算。
示例
运行此代码
#include <iostream> #include <chrono> // std::chrono 已找到最大公约数,类似使用 std::common_type<> 。 // 我们令类型推导外化。 template <typename T,typename S> auto durationDiff(const T& t, const S& s) -> typename std::common_type<T,S>::type { typedef typename std::common_type<T,S>::type Common; return Common(t) - Common(s); } int main() { typedef std::chrono::milliseconds milliseconds; typedef std::chrono::microseconds microseconds; auto ms = milliseconds(30); auto us = microseconds(1100); std::cout << ms.count() << "ms - " << us.count() << "us = " << durationDiff(ms,us).count() << "\n"; }
输出:
30ms - 1100us = 28900
参阅
(C++11)
|
确定一组类型的公共类型 (类模板) |