|
|
|
Defined in header <chrono> | ||
template<class Dest,class Source> struct clock_time_conversion{}; | (since C++20) | |
std::chrono::clock_time_conversion
is a trait that specifies how to convert astd::chrono::time_point of theSource
clock to that of theDest
clock. It does so by providing a const-callableoperator()
that accepts an argument of typestd::chrono::time_point<Source, Duration> and returns astd::chrono::time_point<Dest, OtherDuration> that represents an equivalent point in time. The duration of the returned time point is computed from the source duration in a manner that varies for each specialization.clock_time_conversion
is normally only used indirectly, viastd::chrono::clock_cast.
A program may specializeclock_time_conversion
if at least one of the template parameters is a user-defined clock type.
The primary template is an empty struct. The standard defines the following specializations:
template<class Clock> struct clock_time_conversion<Clock, Clock>; | (1) | (since C++20) |
template<> struct clock_time_conversion<std::chrono::system_clock,std::chrono::system_clock>; | (2) | (since C++20) |
template<> struct clock_time_conversion<std::chrono::utc_clock,std::chrono::utc_clock>; | (3) | (since C++20) |
template<> struct clock_time_conversion<std::chrono::system_clock,std::chrono::utc_clock>; | (4) | (since C++20) |
template<> struct clock_time_conversion<std::chrono::utc_clock,std::chrono::system_clock>; | (5) | (since C++20) |
template<class Clock> struct clock_time_conversion<Clock,std::chrono::system_clock>; | (6) | (since C++20) |
template<class Clock> struct clock_time_conversion<std::chrono::system_clock, Clock>; | (7) | (since C++20) |
template<class Clock> struct clock_time_conversion<Clock,std::chrono::utc_clock>; | (8) | (since C++20) |
template<class Clock> struct clock_time_conversion<std::chrono::utc_clock, Clock>; | (9) | (since C++20) |
operator()
returns a copy of the argument.operator()
callsstd::chrono::utc_clock::to_sys andstd::chrono::utc_clock::from_sys, respectively.Clock
supportsfrom_sys
andto_sys
:operator()
callsClock::to_sys andClock::from_sys, respectively.Clock
supportsfrom_utc
andto_utc
:operator()
callsClock::to_utc andClock::from_utc, respectively.Contents |
Each specialization has an implicitly-declared default constructor, copy constructor, move constructor, copy assignment operator, move assignment operator, and destructor.
template<class Duration> std::chrono::time_point<Clock, Duration> | (1) | (member of specialization(1)) |
template<class Duration> std::chrono::sys_time<Duration> | (2) | (member of specialization(2)) |
template<class Duration> std::chrono::utc_time<Duration> | (3) | (member of specialization(3)) |
template<class Duration> std::chrono::sys_time<Duration> | (4) | (member of specialization(4)) |
template<class Duration> std::chrono::utc_time<Duration> | (5) | (member of specialization(5)) |
template<class Duration> auto operator()(conststd::chrono::sys_time<Duration>& t)const | (6) | (member of specialization(6)) |
template<class Duration> auto operator()(conststd::chrono::time_point<SourceClock, Duration>& t)const | (7) | (member of specialization(7)) |
template<class Duration> auto operator()(conststd::chrono::utc_time<Duration>& t)const | (8) | (member of specialization(8)) |
template<class Duration> auto operator()(conststd::chrono::time_point<Clock, Duration>& t)const | (9) | (member of specialization(9)) |
Converts the argumentstd::chrono::time_point to the destination clock.
t
unchanged.Duration
is some valid specialization ofstd::chrono::duration.Duration
is some valid specialization ofstd::chrono::duration.Duration
is some valid specialization ofstd::chrono::duration.Duration
is some valid specialization ofstd::chrono::duration.t | - | time point to convert |
The result of the conversion as described above:
(C++20) | convert time points of one clock to another (function template)[edit] |