clock_time_conversion
Struct
Vlastnost, která určuje, jak převést time_point
z jednoho typu hodin na jiný při zachování ekvivalentního bodu v čase.
Syntaxe
// 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>;
Parametry šablony
Clock
Typ hodin, ze které se má převést z/do.
Dest
Typ hodin, na který se má převést.
Source
Typ hodin, ze které se má převést.
Vlastnosti poskytují následující převody:
1) Prázdná struktura, která je definována pouze tak, aby byla specializovaná.
2–4) Převody identit. Vrátí stejné hodiny, které předáte.
5–6) Převod mezi sys_time
voláními a utc_time
voláními utc_clock::to_sys
nebo utc_clock::from_sys
v závislosti na směru převodu.
7-8) Převod mezi sys_time
a zadanými hodinou, pokud zadané hodiny podporují to_sys
a from_sys
v závislosti na směru převodu dojde k Clock::to_sys
volání nebo Clock::from_sys
.
9-10) Převod mezi utc_time
a zadanými hodinou, pokud zadané hodiny podporují from_utc
a to_sys
v závislosti na směru převodu dojde k volání nebo Clock::to_utc
Clock::from_utc
, v závislosti na směru převodu.
Členové
Název | Popis |
---|---|
operator () |
time_point Převede jeden z hodin na druhý. |
Poznámky
Tuto vlastnost obvykle nebudete používat přímo ve svém kódu. Používá ji funkce převodu clock_cast
.
Požadavky
Záhlaví:<chrono
>
Obor názvů: std::chrono
Možnost kompilátoru: /std:c++latest
operator()
time_point
Převede z jednoho typu hodin na druhý při zachování ekvivalentního bodu v čase.
Syntaxe
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;
Parametry
t
Převod.time_point
Vrácená hodnota
1–3) Převody identit. Bez převodu. Vrátí t
beze změn.
4) Vrátí utc_clock::to_sys(t)
.
5) Vrátí utc_clock::from_sys(t)
.
Průvodci odpočtem
Následující odpočtové příručky jsou poskytovány pro 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) Účastní se rozlišení přetížení pouze v případech, kdy Clock
podporuje from_sys()
a vrací time_point<Clock, Duration>
.
2) Účastní se rozlišení přetížení pouze v případech, kdy Clock
podporuje to_sys()
a vrací sys_time<Duration>
.
3) Účastní se rozlišení přetížení pouze v případech, kdy Clock
podporuje from_utc()
a vrací time_point<Clock, Duration>
.
4) Účastní se rozlišení přetížení pouze v případech, kdy Clock
podporuje to_utc()
a vrací utc_time<Duration>
.
Příklad: 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
Viz také
<chrono>
clock_cast
Referenční informace k souborům hlaviček