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
时钟的 std::chrono::time_point。它通过提供一个 const 可调用的 operator()
来实现这一点,该运算符接受类型 std::chrono::time_point<Source, Duration> 的参数,并返回一个 std::chrono::time_point<Dest, OtherDuration>,该运算符表示时间上等效的点。返回的时间点的持续时间是根据源持续时间计算得出的,计算方式因每个特化而异。clock_time_conversion
通常仅通过 std::chrono::clock_cast 间接使用。
如果至少一个模板参数是用户定义的时钟类型,则程序可以特化 clock_time_conversion
。
主模板是一个空结构体。标准定义了以下特化
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 的转换以及从 std::chrono::sys_time 的转换:operator()
分别调用 Clock::to_sys 和 Clock::from_sys。Clock
支持 from_utc
和 to_utc
时,到 std::chrono::utc_time 的转换以及从 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 | - | 要转换的时间点 |
返回值
如上所述的转换结果
[编辑] 另请参阅
(C++20) |
将一个时钟的时间点转换为另一个时钟 (函数模板) |