Sdílet prostřednictvím


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_sysv 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_sysv 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

tPř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