clock_time_conversion
-Struktur
Ein Merkmal, das angibt, wie ein time_point
Uhrtyp in einen anderen konvertiert wird, während der äquivalente Punkt in der Zeit beibehalten wird.
Syntax
// C++20
1) template<class Dest, class Source> struct clock_time_conversion {};
2) template<class Clock> struct clock_time_conversion<Clock, Clock>;
3) template<> struct clock_time_conversion<system_clock, system_clock>;
4) template<> struct clock_time_conversion<utc_clock, utc_clock>;
5) template<> struct clock_time_conversion<system_clock, utc_clock>;
6) template<> struct clock_time_conversion<utc_clock, system_clock>;
7) template<class Clock> struct clock_time_conversion<Clock, system_clock>;
8) template<class Clock> struct clock_time_conversion<system_clock, Clock>;
9) template<class Clock> struct clock_time_conversion<Clock, utc_clock>;
10) template<class Clock> struct clock_time_conversion<utc_clock, Clock>;
Vorlagenparameter
Clock
Ein Uhrtyp zum Konvertieren von/in.
Dest
Der Uhrtyp, in den konvertiert werden soll.
Source
Der Uhrtyp, aus dem konvertiert werden soll.
Die Merkmale stellen die folgenden Konvertierungen bereit:
1) Eine leere Struktur, die nur definiert wird, damit sie spezialisiert sein kann.
2-4) Identitätskonvertierungen. Gibt die gleiche Uhr zurück, die Sie übergeben.
5-6) Konvertieren zwischen sys_time
und utc_time
Anrufen utc_clock::to_sys
oder utc_clock::from_sys
abhängig von der Richtung der Konvertierung.
7-8) Konvertieren zwischen sys_time
und der angegebenen Uhr, wenn die angegebene Uhr unterstützt to_sys
und from_sys
, führt zu einem Aufruf oder Clock::to_sys
Clock::from_sys
, je nach Richtung der Konvertierung.
9-10) Konvertieren zwischen utc_time
und der angegebenen Uhr, wenn die angegebene Uhr unterstützt from_utc
und to_sys
, führt zu einem Aufruf oder Clock::to_utc
Clock::from_utc
, je nach Richtung der Konvertierung.
Member
name | BESCHREIBUNG |
---|---|
operator () |
Wandelt eine time_point Uhr von einer Uhr in eine andere um. |
Hinweise
Normalerweise verwenden Sie diese Eigenschaft nicht direkt in Ihrem Code. Sie wird von der clock_cast
Konvertierungsfunktion verwendet.
Requirements (Anforderungen)
Header:<chrono
>
Namespace:std::chrono
Compileroption:/std:c++latest
operator()
Wandelt einen time_point
Von einem Uhrtyp in einen anderen um, während der äquivalente Zeitpunkt beibehalten wird.
Syntax
1)
template <class Duration>
time_point<Clock, Duration> operator()(const time_point<Clock, Duration>& t) const;
2)
template <class Duration>
sys_time<Duration> operator()(const sys_time<Duration> & t) const;
3)
template <class Duration>
utc_time<Duration> operator()(const utc_time<Duration>& t) const;
4)
template <class Duration>
sys_time<Duration> operator()(const utc_time<Duration>& t) const;
5)
template <class Duration>
utc_time<Duration> operator()(const sys_time<Duration>& t) const;
Parameter
t
Die time_point
Konvertierung.
Rückgabewert
1-3) Identitätskonvertierungen. Keine Konvertierung. Gibt ohne Änderungen zurück t
.
4) Gibt zurück utc_clock::to_sys(t)
.
5) Gibt zurück utc_clock::from_sys(t)
.
Ableitungslinien
Die folgenden Ableitungsleitlinien werden für template <class Duration> operator()
:
1)
template <class Duration> auto operator()(const sys_time<Duration>& t) const
-> decltype(Clock::from_sys(t));
2)
template <class Duration> auto operator()(const time_point<SourceClock, Duration>& t) const
-> decltype(Clock::to_sys(t));
3)
template <class Duration> auto operator()(const utc_time<Duration>& t) const
-> decltype(Clock::from_utc(t));
4)
template <class Duration> auto operator()(const time_point<Clock, Duration>& t) const
-> decltype(Clock::to_utc(t));
1) Nimmt nur an der Überladungsauflösung teil, wenn Clock
sie unterstützt from_sys()
und zurückgegeben wird time_point<Clock, Duration>
.
2) Nimmt nur an der Überladungsauflösung teil, wenn Clock
sie unterstützt to_sys()
und zurückgegeben wird sys_time<Duration>
.
3) Teil der Überlastungsauflösung nur, wenn Clock
sie unterstützt from_utc()
und zurückgegeben wird time_point<Clock, Duration>
.
4) Nimmt nur an der Überladungsauflösung teil, wenn Clock
sie unterstützt to_utc()
und zurückgegeben wird utc_time<Duration>
.
Beispiel: clock_time_conversion
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
auto sd = sys_days{ 2021y / July / 26 };
auto time = clock_time_conversion<utc_clock, system_clock>{}(sd);
std::cout << time << "\n";
return 0;
}
2021-07-26 00:00:00