Aracılığıyla paylaş


clock_time_conversion Yapı

Bir saatin bir saat türünden diğerine nasıl dönüştürüldüğünü time_point belirten ve zaman içindeki eşdeğer noktayı koruyan bir özellik.

Sözdizimi

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

Şablon parametreleri

Clock
Dönüştürülecek/dönüştürülecek bir saat türü.

Dest
Dönüştürülecek saat türü.

Source
Dönüştürülecek saat türü.

Özellikler aşağıdaki dönüştürmeleri sağlar:

1) Yalnızca özelleştirilebilir şekilde tanımlanan boş bir yapı.
2-4) Kimlik dönüştürmeleri. Geçirdiğiniz saati döndürür.
5-6) ve utc_time çağrıları utc_clock::to_sys arasında sys_time dönüştürme veya utc_clock::from_sys dönüştürmenin yönüne bağlı olarak.
7-8) Belirtilen saat ve from_sys'yi desteklediğinde to_sys belirtilen saat arasında sys_time dönüştürme işlemi, dönüştürmenin yönüne bağlı olarak veya Clock::from_sysçağrısıyla Clock::to_sys sonuçlandığında.
9-10) Belirtilen saat ve to_sys'yi desteklediğinde from_utc ve arasında utc_timedönüştürme işlemi, dönüştürmenin yönüne bağlı olarak veya Clock::from_utcçağrısıyla Clock::to_utc sonuçlandığında.

Üyeler

Veri Akışı Adı Açıklama
operator () Bir time_point saati bir saatten diğerine dönüştürür.

Açıklamalar

Bu özelliği genellikle doğrudan kodunuzda kullanmayacaksınız. Dönüştürme işlevi tarafından clock_cast kullanılır.

Gereksinimler

Üstbilgi:<chrono>

Ad alanı: std::chrono

Derleyici Seçeneği: /std:c++latest

operator()

Zaman içindeki eşdeğer noktayı korurken bir time_point saat türünü başka bir saat türüne dönüştürür.

Sözdizimi

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;

Parametreler

ttime_point Dönüştürülecek.

Dönüş değeri

1-3) Kimlik dönüştürmeleri. Dönüştürme yok. Hiçbir değişiklik yapmadan döndürür t .
4) döndürür utc_clock::to_sys(t).
5) Döndürür utc_clock::from_sys(t).

Kesinti kılavuzları

için template <class Duration> operator()aşağıdaki kesinti kılavuzları sağlanır:

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) aşırı yükleme çözünürlüğüne yalnızca desteklendiğinde from_sys() ve döndürdüğünde Clock katılırtime_point<Clock, Duration>.
2) aşırı yükleme çözümüne yalnızca desteklendiğinde to_sys() ve döndürdüğünde Clock katılırsys_time<Duration>.
3) aşırı yükleme çözümüne yalnızca desteklendiğinde from_utc() ve döndürdüğünde Clock katılırtime_point<Clock, Duration>.
4) aşırı yükleme çözümüne yalnızca desteklendiğinde to_utc() ve döndürdüğünde Clock katılırutc_time<Duration>.

Örnek: 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

Ayrıca bkz.

<chrono>
clock_cast
Üst Bilgi Dosyaları Başvurusu