std::chrono::clock_time_conversion
Определено в заголовочном файле <chrono> | ||
template<class Dest, class Source>struct clock_time_conversion {}; | (начиная с C++20) | |
std::chrono::clock_time_conversion
это свойство, указывающее, как преобразовать std::chrono::time_point часов Source
в часы Dest
. Оно делает это, предоставляя константо вызываемый operator()
, который принимает аргумент типа std::chrono::time_point<Source, Duration> и возвращает std::chrono::time_point<Dest, OtherDuration>, представляющий эквивалентный момент времени. Длительность возвращаемого момента времени вычисляется из исходной длительности способом, который различается для каждой специализации. clock_time_conversion
обычно используется только косвенно, через std::chrono::clock_cast.
Программа может специализировать clock_time_conversion
, если по крайней мере один из параметров шаблона является определяемым пользователем типом часов.
Первичный шаблон представляет собой пустую структуру. Стандарт определяет следующие специализации:
template<class Clock>struct clock_time_conversion<Clock, Clock>; | (1) | (начиная с C++20) |
template<>struct clock_time_conversion<std::chrono::system_clock, std::chrono::system_clock>; | (2) | (начиная с C++20) |
template<>struct clock_time_conversion<std::chrono::utc_clock, std::chrono::utc_clock>; | (3) | (начиная с C++20) |
template<>struct clock_time_conversion<std::chrono::system_clock, std::chrono::utc_clock>; | (4) | (начиная с C++20) |
template<>struct clock_time_conversion<std::chrono::utc_clock, std::chrono::system_clock>; | (5) | (начиная с C++20) |
template<class Clock>struct clock_time_conversion<Clock, std::chrono::system_clock>; | (6) | (начиная с C++20) |
template<class Clock>struct clock_time_conversion<std::chrono::system_clock, Clock>; | (7) | (начиная с C++20) |
template<class Clock>struct clock_time_conversion<Clock, std::chrono::utc_clock>; | (8) | (начиная с C++20) |
template<class Clock>struct clock_time_conversion<std::chrono::utc_clock, Clock>; | (9) | (начиная с C++20) |
operator()
возвращает копию аргумента.operator()
вызывает std::chrono::utc_clock::to_sys и std::chrono::utc_clock::from_sys, соответственно.Clock
поддерживает from_sys
и to_sys
: operator()
вызывает Clock::to_sys и Clock::from_sys, соответственно.Clock
поддерживает from_utc
и to_utc
: operator()
вызывает Clock::to_utc и Clock::from_utc, соответственно.Содержание |
[править]Функции-элементы
Каждая специализация имеет неявно объявленный конструктор по умолчанию, конструктор копирования, конструктор перемещения, оператор присваивания копированием, оператор присваивания перемещением и деструктор.
std::chrono::clock_time_conversion::operator()
template<class Duration> std::chrono::time_point<Clock, Duration> | (1) | (элемент специализации (1)) |
template<class Duration> std::chrono::sys_time<Duration> | (2) | (элемент специализации (2)) |
template<class Duration> std::chrono::utc_time<Duration> | (3) | (элемент специализации (3)) |
template<class Duration> std::chrono::sys_time<Duration> | (4) | (элемент специализации (4)) |
template<class Duration> std::chrono::utc_time<Duration> | (5) | (элемент специализации (5)) |
template<class Duration> auto operator()(conststd::chrono::sys_time<Duration>& t)const | (6) | (элемент специализации (6)) |
template<class Duration> auto operator()(conststd::chrono::time_point<SourceClock, Duration>& t)const | (7) | (элемент специализации (7)) |
template<class Duration> auto operator()(conststd::chrono::utc_time<Duration>& t)const | (8) | (элемент специализации (8)) |
template<class Duration> auto operator()(conststd::chrono::time_point<Clock, Duration>& t)const | (9) | (элемент специализации (9)) |
Преобразует аргумент std::chrono::time_point в назначенные часы.
t
без изменений.Duration
это некоторая допустимая специализация std::chrono::duration.Duration
это допустимая специализация std::chrono::duration.Duration
это некоторая допустимая специализация std::chrono::duration.Duration
это некоторая допустимая специализация std::chrono::duration.Параметры
t | — | момент времени для преобразования |
Возвращаемое значение
Результат преобразования, как описано выше:
[править] Смотрите также
(C++20) | конвертирует моменты времени одних часов в другие (шаблон функции) |