std::chrono::clock_cast

来自cppreference.com
< cpp‎ | chrono
 
 
 
日期和时间工具
(C++11)
(C++11)
clock_cast
(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 风格日期和时间
 
定义于头文件 <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)))
  • 否则,此函数不参与重载决议。

返回值

上面确定的转换结果。

示例

参阅

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