Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Egy tulajdonság, amely meghatározza, hogyan alakíthat át egy time_point
óratípust egy másikra, miközben fenntartja az ezzel egyenértékű időpontot.
Szemantika
// 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>;
Sablonparaméterek
Clock
Egy óratípus, amelyről áttérhet a forrásra vagy a típusra.
Dest
Az átalakítandó óra típusa.
Source
A konvertálni kívánt óratípus.
A tulajdonságok a következő konverziókat biztosítják:
1) Egy üres szerkezet, amely csak azért van meghatározva, hogy specializált legyen.
2–4) Identitásátalakítások. Ugyanazt az órát adja vissza, mint a megadott óra.
5-6) Konvertálás a hívások és sys_time
a hívások utc_time
közöttutc_clock::to_sys
, vagy utc_clock::from_sys
az átalakítás irányától függően.
7-8) A konvertálás a megadott óra között sys_time
, amikor a megadott óra támogatja to_sys
, és from_sys
az átalakítás irányától függően hívást Clock::to_sys
Clock::from_sys
eredményez.
9–10) Konvertálás a megadott óra és óra között utc_time
, amikor a megadott óra támogatja from_utc
, és to_sys
az átalakítás irányától függően hívást Clock::to_utc
Clock::from_utc
eredményez.
Tagok
Név | Leírás |
---|---|
operator () |
Az egyik time_point óráról a másikra konvertálja az egyiket. |
Megjegyzések
Ezt a tulajdonságot általában nem fogja közvetlenül használni a kódban. A konvertálási clock_cast
függvény használja.
Követelmények
Fejléc:<chrono
>
Névtér:std::chrono
Fordító beállítás:/std:c++latest
operator()
Átalakít egy óratípust time_point
egy másikra, miközben fenntartja az ezzel egyenértékű időpontot.
Szemantika
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;
Paraméterek
t
Az átalakítandó time_point
.
Visszaadott érték
1-3) Identitásátalakítások. Nincs átalakítás. Módosítások nélkül ad t
vissza.
4) Visszaadja utc_clock::to_sys(t)
.
5) Visszaadja utc_clock::from_sys(t)
.
Levonási útmutatók
A következő levonási útmutatók érhetők el 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) Csak akkor vesz részt a túlterhelés feloldásában, ha Clock
támogatja from_sys()
és visszaadja time_point<Clock, Duration>
.
2) Csak akkor vesz részt a túlterhelés feloldásában, ha Clock
támogatja to_sys()
és visszaadja sys_time<Duration>
.
3) Csak akkor vesz részt a túlterhelés feloldásában, ha Clock
támogatja from_utc()
és visszaadja time_point<Clock, Duration>
.
4) Csak akkor vesz részt a túlterhelés feloldásában, ha Clock
támogatja to_utc()
és visszaadja utc_time<Duration>
.
Példa: 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