clock_time_conversion Struct

Cecha określająca sposób konwertowania time_point z jednego typu zegara na inny przy zachowaniu równoważnego punktu w czasie.

Składnia

// 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 szablonu

Clock
Typ zegara do konwersji z/na.

Dest
Typ zegara, na który ma być konwertowany.

Source
Typ zegara do konwersji z.

Cechy zapewniają następujące konwersje:

1) Pusta struktura, która jest zdefiniowana tylko tak, aby mogła być wyspecjalizowana.
2–4) Konwersje tożsamości. Zwraca ten sam zegar, w którym przechodzisz.
5–6) Konwertowanie między wywołaniami sys_timeutc_clock::to_sys i utc_time lub utc_clock::from_sys w zależności od kierunku konwersji.
7-8) Konwertowanie między sys_time i określony zegar, gdy określony zegar obsługuje to_sys i from_sys, powoduje wywołanie metody Clock::to_sys lub Clock::from_sys, w zależności od kierunku konwersji.
9-10) Konwertowanie między utc_timei określony zegar, gdy określony zegar obsługuje from_utc i to_sys, powoduje wywołanie metody Clock::to_utc lub Clock::from_utc, w zależności od kierunku konwersji.

Członkowie

Nazwa/nazwisko opis
operator () Konwertuje zegar z jednego zegara time_point na inny.

Uwagi

Zazwyczaj ta cecha nie będzie używana bezpośrednio w kodzie. Jest on używany przez funkcję konwersji clock_cast .

Wymagania

Nagłówka:<chrono>

Obszaru nazw:std::chrono

Opcja kompilatora:/std:c++latest

operator()

Konwertuje typ z jednego zegara time_point na inny przy zachowaniu równoważnego punktu w czasie.

Składnia

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 Element time_point do konwersji.

Wartość zwracana

1–3) Konwersje tożsamości. Brak konwersji. Zwraca bez t żadnych zmian.
4) Zwraca wartość utc_clock::to_sys(t).
5) Zwraca. utc_clock::from_sys(t)

Przewodniki odliczeń

Dostępne są następujące przewodniki odliczeń: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) Uczestniczy w rozwiązywaniu przeciążeń tylko wtedy, gdy Clock obsługuje from_sys() i zwraca wartość time_point<Clock, Duration>.
2) Uczestniczy w rozwiązywaniu przeciążeń tylko wtedy, gdy Clock obsługuje to_sys() i zwraca wartość sys_time<Duration>.
3) Uczestniczy w rozwiązywaniu przeciążeń tylko wtedy, gdy Clock obsługuje from_utc() i zwraca wartość time_point<Clock, Duration>.
4) Uczestniczy w rozwiązywaniu przeciążeń tylko wtedy, gdy Clock obsługuje to_utc() i zwraca wartość utc_time<Duration>.

Przykład: 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

Zobacz też

<chrono>
clock_cast
Odwołanie do plików nagłówka