# std::chrono::clock_cast

< cpp‎ | chrono

定义于头文件 `<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)))

- 否则，此函数不参与重载决议。

### 返回值

上面确定的转换结果。

### 示例

| 本节未完成 原因：暂无示例

### 参阅

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