std::chrono::clock_time_conversion
在标头
<chrono>
定义
|
||
template<class
Dest, class
Source>
struct
clock_time_conversion {
};
|
(C++20 起) | |
std::chrono::clock_time_conversion
是特性类,指定如何转换
Source
时钟的 std::chrono::time_point
到 Dest
时钟的时间点。它通过提供 const 可调用的,接受 std::chrono::time_point<Source, Duration>
类型参数并返回表示等价时间点的 std::chrono::time_point<Dest, OtherDuration> 的
operator()
进行转换。以对每个特化有所变化的方式,计算返回时间点的时长。通常只通过 std::chrono::clock_cast 间接使用
clock_time_conversion
。
程序可以特化 clock_time_conversion
,若至少一个模板形参是用户定义类型。
初等模板是空 struct 。标准定义下列特化:
template<class
Clock>
struct
clock_time_conversion<Clock,
Clock>;
|
(1) | (C++20 起) |
template<>
struct
clock_time_conversion<std::chrono::system_clock,
std::chrono::system_clock>;
|
(2) | (C++20 起) |
template<>
struct
clock_time_conversion<std::chrono::utc_clock,
std::chrono::utc_clock>;
|
(3) | (C++20 起) |
template<>
struct
clock_time_conversion<std::chrono::system_clock,
std::chrono::utc_clock>;
|
(4) | (C++20 起) |
template<>
struct
clock_time_conversion<std::chrono::utc_clock,
std::chrono::system_clock>;
|
(5) | (C++20 起) |
template<class
Clock>
struct
clock_time_conversion<Clock,
std::chrono::system_clock>;
|
(6) | (C++20 起) |
template<class
Clock>
struct
clock_time_conversion<std::chrono::system_clock,
Clock>;
|
(7) | (C++20 起) |
template<class
Clock>
struct
clock_time_conversion<Clock,
std::chrono::utc_clock>;
|
(8) | (C++20 起) |
template<class
Clock>
struct
clock_time_conversion<std::chrono::utc_clock,
Clock>;
|
(9) | (C++20 起) |
operator()
返回参数的副本。operator()
分别调用 std::chrono::utc_clock::to_sys 和 std::chrono::utc_clock::from_sys 。Clock
支持
from_sys
和 to_sys
时,来自和到 std::chrono::sys_time 的转换:
operator()
分别调用 Clock::to_sys 和 Clock::from_sys 。
Clock
支持
from_utc
和 to_utc
时,来自和到 std::chrono::utc_time 的转换:
operator()
分别调用 Clock::to_utc 和 Clock::from_utc 。
成员函数
每个特化都有隐式声明的默认构造函数、复制构造函数、移动构造函数、复制赋值运算符、移动赋值运算符和析构函数。
std::chrono::clock_time_conversion::operator()
template
<class
Duration>
std::chrono::time_point<Clock,
Duration> |
(1) | (特化 (1) 的成员) |
template
<class
Duration>
std::chrono::sys_time<Duration>
|
(2) | (特化 (2) 的成员) |
template
<class
Duration>
std::chrono::utc_time<Duration>
|
(3) | (特化 (3) 的成员) |
template
<class
Duration>
std::chrono::sys_time<Duration>
|
(4) | (特化 (4) 的成员) |
template
<class
Duration>
std::chrono::utc_time<Duration>
|
(5) | (特化 (5) 的成员) |
template
<class
Duration>
auto
operator()(const
std::chrono::sys_time<Duration>&
t)
const |
(6) | (特化 (6) 的成员) |
template
<class
Duration>
auto
operator()(const
std::chrono::time_point<SourceClock,
Duration>&
t)
const |
(7) | (特化 (7) 的成员) |
template
<class
Duration>
auto
operator()(const
std::chrono::utc_time<Duration>&
t)
const |
(8) | (特化 (8) 的成员) |
template
<class
Duration>
auto
operator()(const
std::chrono::time_point<Clock,
Duration>&
t)
const |
(9) | (特化 (9) 的成员) |
转换参数 std::chrono::time_point 为目标时钟。
t
。Duration
是 std::chrono::duration
的某个合法特化,则程序非良构。Duration
是 std::chrono::duration
的某个合法特化,则程序非良构。Duration
是 std::chrono::duration
的某个合法特化,则程序非良构。Duration
是 std::chrono::duration
的某个合法特化,则程序非良构。参数
t | - | 要转化的时间点 |
返回值
上述的转换结果:
t
。参阅
(C++20)
|
转换一个时钟的时间点为另一个 (函数模板) |