Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ett drag som anger hur du konverterar en time_point från en typ av klocka till en annan, samtidigt som motsvarande tidpunkt bibehålls.
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>;
Mallparametrar
Clock
En klocktyp som ska konverteras från/till.
Dest
Klocktypen som ska konverteras till.
Source
Klocktypen som ska konverteras från.
Egenskaperna ger följande konverteringar:
1) En tom struct som endast definieras så att den kan specialiseras.
2–4) Identitetskonverteringar. Returnerar samma klocka som du skickar in.
5–6) Konvertera mellan sys_time och utc_time anropar utc_clock::to_sys eller utc_clock::from_sys beroende på konverteringens riktning.
7–8) Konvertering mellan sys_time och den angivna klockan, när den angivna klockan stöder to_sys och from_sys, resulterar i ett anrop till Clock::to_sys eller Clock::from_sys, beroende på konverteringens riktning.
9–10) Konvertering mellan utc_time och den angivna klockan, när den angivna klockan stöder from_utc och to_sys, resulterar i ett anrop till Clock::to_utc eller Clock::from_utc, beroende på konverteringens riktning.
Medlemmar
| Namn | Beskrivning |
|---|---|
operator () |
Konverterar en time_point från en klocka till en annan. |
Anmärkningar
Du använder vanligtvis inte detta drag direkt i koden. Den används av konverteringsfunktionen clock_cast .
Kravspecifikation
Rubrik:<chrono>
Namespace:std::chrono
kompilatoralternativ:/std:c++latest
operator()
Konverterar en från en time_point klocktyp till en annan samtidigt som motsvarande tidpunkt bibehålls.
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;
Parameterar
t
Den time_point att konvertera.
Returvärde
1–3) Identitetskonverteringar. Ingen konvertering. Returnerar t utan ändringar.
4) Returnerar utc_clock::to_sys(t).
5) Returnerar utc_clock::from_sys(t).
Avdragsguider
Följande avdragsguider tillhandahålls 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) Deltar endast i överbelastningsmatchning när Clock stöder from_sys() och returnerar time_point<Clock, Duration>.
2) Deltar endast i överbelastningsmatchning när Clock stöder to_sys() och returnerar sys_time<Duration>.
3) Deltar endast i överbelastningsmatchning när Clock stöder from_utc() och returnerar time_point<Clock, Duration>.
4) Deltar endast i överbelastningsmatchning när Clock stöder to_utc() och returnerar utc_time<Duration>.
Exempel: 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
Se även
<chrono>
clock_cast
referens för huvudfiler