std::chrono::clock_cast
Определено в заголовке <chrono> | ||
|---|---|---|
template< class Dest, class Source, class Duration > auto clock_cast( const std::chrono::time_point<Source, Duration>& t ); | (с C++20) |
Преобразует точку времени t заданного часового механизма Source в эквивалентную точку времени часового механизма 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)))
- В противном случае, эта функция не участвует в разрешении перегрузки.
Возвращаемое значение
Результат преобразования, определенный, как описано выше.
Пример
См. также
|
(C++20) | Класс-признак, определяющий, как преобразовать точки времени одного часового механизма в другой (шаблон класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/chrono/clock_cast