C++ 参考手册
- C++11
- C++14
- C++17
- C++20
- C++ 编译器支持情况表
- 独立与宿主实现
- C++ 语言
- C++ 关键词
- 预处理器
- C++ 标准库头文件
- 具名要求
- 功能特性测试 (C++20)
- 工具库
- 类型支持(基本类型、RTTI、类型特性)
- 概念库 (C++20)
- 错误处理
- 动态内存管理
- 日期和时间工具
- std::chrono::clock_cast
- std::chrono::is_am, std::chrono::is_pm, std::chrono::make12, std::chrono::make24
- std::chrono::system_clock
- std::chrono::steady_clock
- std::chrono::high_resolution_clock
- std::chrono::clock_time_conversion
- std::chrono::duration
- std::chrono::time_point
- C 日期和时间工具
- std::chrono::is_clock
- std::chrono::utc_clock
- std::chrono::tai_clock
- std::chrono::gps_clock
- std::chrono::file_clock
- std::chrono::local_t
- std::chrono::day
- std::chrono::month
- std::chrono::year
- std::chrono::weekday
- std::chrono::operator/ (日历)
- std::chrono::year_month_day
- std::chrono::year_month_day_last
- std::chrono::year_month_weekday
- std::chrono::year_month_weekday_last
- std::chrono::weekday_indexed
- std::chrono::weekday_last
- std::chrono::month_day
- std::chrono::month_day_last
- std::chrono::month_weekday
- std::chrono::month_weekday_last
- std::chrono::year_month
- std::chrono::tzdb
- std::chrono::tzdb_list
- std::chrono::get_tzdb_list, std::chrono::get_tzdb, std::chrono::remote_version, std::chrono::reload_tzdb
- std::chrono::time_zone
- std::chrono::locate_zone
- std::chrono::current_zone
- std::chrono::zoned_time
- std::chrono::time_zone_link
- std::chrono::leap_second
- std::chrono::time_of_day
- std::chrono::last_spec
- std::chrono::treat_as_floating_point
- std::literals::chrono_literals::operator""ns
- std::literals::chrono_literals::operator""y
- std::literals::chrono_literals::operator""d
- std::literals::chrono_literals::operator""s
- std::literals::chrono_literals::operator""ms
- std::literals::chrono_literals::operator""us
- std::literals::chrono_literals::operator""h
- std::literals::chrono_literals::operator""min
- std::chrono::duration_values
- std::chrono::nonexistent_local_time
- std::chrono::ambiguous_local_time
- 注释
- 字符串库
- 容器库
- 迭代器库
- 范围库 (C++20)
- 算法库
- 数值库
- 输入/输出库
- 文件系统库
- 本地化库
- 正则表达式库
- 原子操作库
- 线程支持库
- 实验性 C++ 特性
- 有用的资源
- 索引
- std 符号索引
- 协程支持 (C++20)
- C++ 关键词
std::chrono::clock_time_conversion
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) |
转换一个时钟的时间点为另一个 (函数模板) |