clock_time_conversion-Struktur

Ein Merkmal, das angibt, wie eine time_point Art von Uhr in einen anderen konvertiert wird, während der äquivalente Zeitpunkt 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, der von/in konvertiert werden soll.

Dest
Der Uhrtyp, in den konvertiert werden soll.

Source
Der Zu konvertierende Uhrtyp.

Die Merkmale stellen die folgenden Konvertierungen bereit:

1) Eine leere Struktur, die nur definiert ist, damit sie spezialisiert werden kann.
2-4) Identitätskonvertierungen. Gibt die gleiche Uhr zurück, die Sie übergeben.
5-6) Konvertieren zwischen sys_time und utc_time Aufrufen 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 Clock::to_sys oder Clock::from_sys, je nach Richtung der Konvertierung.
9-10) Konvertieren zwischen utc_timeund der angegebenen Uhr, wenn die angegebene Uhr unterstützt from_utc und to_sys, führt zu einem Aufruf Clock::to_utc oder Clock::from_utc, je nach Richtung der Konvertierung.

Member

name Beschreibung
operator () Wandelt eine Von einer time_point Uhr in eine andere um.

Bemerkungen

In der Regel verwenden Sie diese Eigenschaft nicht direkt in Ihrem Code. Sie wird von der clock_cast Konvertierungsfunktion verwendet.

Anforderungen

Header:<chrono>

Namespace:std

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 Der time_point zu konvertierende Befehl.

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).

Abzugslinien

Die folgenden Abzugslinien sind 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 diese unterstützt from_sys() und zurückgegeben wird time_point<Clock, Duration>.
2) Nimmt nur an der Überladungsauflösung teil, wenn Clock diese unterstützt to_sys() und zurückgegeben wird sys_time<Duration>.
3) Nimmt nur an der Überladungsauflösung teil, wenn Clock diese unterstützt from_utc() und zurückgegeben wird time_point<Clock, Duration>.
4) Nimmt nur an der Überladungsauflösung teil, wenn Clock diese 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

Siehe auch

<chrono>
clock_cast
Headerdateienreferenz