std::chrono::clock_cast

来自cppreference.com
< cpp‎ | chrono
 
 
工具库
通用工具
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中弃用)
整数比较函数
(C++20)(C++20)(C++20)
(C++20)
swap 与类型运算
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
常用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
初等字符串转换
(C++17)
(C++17)
 
日期和时间工具
时间点
(C++11)
clock_cast
(C++20)
时长
(C++11)
时钟
(C++11)      
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
当天时刻
(C++20)(C++20)
(C++20)(C++20)
(C++20)

日历
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
时区
(C++20)
(C++20)
(C++20)
chrono I/O
(C++20)
C 风格日期和时间
 
在标头 <chrono> 定义
template <class Dest, class Source, class Duration>
auto clock_cast(const std::chrono::time_point<Source, Duration>& t);
(C++20 起)

转换时钟 Source 的时间点 t 为时钟 Dest 的等价时间点,必要时以 std::chrono::system_clock 和/或 std::chrono::utc_clock 作为中介。

  • 若表达式 std::chrono::clock_time_conversion<Dest, Source>{}(t) 为良构,则返回该表达式的结果。
  • 否则,若下列二个表达式至少有一个为良构,则
  • 若二个表达式均为良构,则转换有歧义,而程序为谬构。
  • 否则,二个表达式恰有一个为良构;返回该表达式的结果。
1) std::chrono::clock_time_conversion<Dest, std::chrono::system_clock>{}(
    std::chrono::clock_time_conversion<std::chrono::system_clock, Source>{}(t))
2) std::chrono::clock_time_conversion<Dest, std::chrono::utc_clock>{}(
    std::chrono::clock_time_conversion<std::chrono::utc_clock, Source>{}(t))
  • 否则,若下列二个表达式至少有一个为良构,则
  • 若两个表达式均为良构,则转换有歧义,而程序为谬构。
  • 否则,二个表达式恰有一个为良构;返回该表达式的结果。
1) std::chrono::clock_time_conversion<Dest, std::chrono::utc_clock>{}(

    std::chrono::clock_time_conversion<std::chrono::utc_clock, std::chrono::system_clock>{}(

        std::chrono::clock_time_conversion<std::chrono::system_clock, Source>{}(t)))
2) std::chrono::clock_time_conversion<Dest, std::chrono::system_clock>{}(

    std::chrono::clock_time_conversion<std::chrono::system_clock, std::chrono::utc_clock>{}(

        std::chrono::clock_time_conversion<std::chrono::utc_clock, Source>{}(t)))
  • 否则,此函数不参与重载决议。

返回值

上面确定的转换结果。

示例

参阅

定义如何转换一个时钟的时间点为另一个的特性类
(类模板)