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_sysClock::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 oder Clock::to_utcClock::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

Siehe auch

<chrono>
clock_cast
Headerdateienreferenz