Freigeben über


clock_time_conversion-Struktur

Ein Merkmal, das angibt, wie eine time_point Art von Uhr in eine andere 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, der von/in konvertiert werden soll.

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 so definiert ist, dass sie spezialisiert werden kann.
2-4) Identitätskonvertierungen. Gibt die gleiche Uhr zurück, die Sie übergeben.
5-6) Konvertierung 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) Konvertierung 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, abhängig von der Richtung der Konvertierung.
9-10) Konvertierung zwischen utc_time und 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, abhängig von der Richtung der Konvertierung.

Mitglieder

Name Beschreibung
operator () Wandelt eine Uhr in eine time_point andere um.

Hinweise

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::chrono

Compileroption: /std:c++latest

operator()

Wandelt einen Von einem time_point Takttyp 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 Text.

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 bei Clock Unterstützung from_sys() und Rückgabe time_point<Clock, Duration>an der Überladungsauflösung teil.
2) Nimmt nur bei Clock Unterstützung to_sys() und Rückgabe sys_time<Duration>an der Überladungsauflösung teil.
3) Nimmt nur bei Clock Unterstützung from_utc() und Rückgabe time_point<Clock, Duration>an der Überladungsauflösung teil.
4) Nimmt nur bei Clock Unterstützung to_utc() und Rückgabe utc_time<Duration>an der Überladungsauflösung teil.

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