Spec-Zone.ru › C++

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)))
  • В противном случае, эта функция не участвует в разрешении перегрузки.

Возвращаемое значение

Результат преобразования, определенный, как описано выше.

Пример

См. также

clock_time_conversion
(C++20)
Класс-признак, определяющий, как преобразовать точки времени одного часового механизма в другой
(шаблон класса)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/chrono/clock_cast

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API