Partager via


struct clock_time_conversion

Trait qui spécifie comment convertir un time_point type d’horloge en un autre, tout en conservant le point équivalent dans le temps.

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

Paramètres de modèle

Clock
Type d’horloge à convertir de/vers.

Dest
Type d’horloge à convertir.

Source
Type d’horloge à partir duquel effectuer la conversion.

Les caractéristiques fournissent les conversions suivantes :

1) Struct vide défini uniquement afin qu’il puisse être spécialisé.
2-4) Conversions d’identité. Retourne la même horloge que celle que vous passez.
5-6) Conversion entre sys_time et utc_time appels utc_clock::to_sys ou utc_clock::from_sys selon la direction de la conversion.
7-8) Conversion entre sys_time et l’horloge spécifiée, lorsque l’horloge spécifiée prend en charge to_sys et from_sys, entraîne un appel vers Clock::to_sys ou Clock::from_sys, selon la direction de la conversion.
9-10) Conversion entre utc_timel’horloge spécifiée, lorsque l’horloge spécifiée prend en charge from_utc et to_sys, génère un appel vers Clock::to_utc ou Clock::from_utc, selon la direction de la conversion.

Membres

Nom Description
operator () Convertit une time_point horloge en une autre.

Notes

Vous n’utiliserez généralement pas cette caractéristique directement dans votre code. Elle est utilisée par la clock_cast fonction de conversion.

Spécifications

En-tête<chrono>:

Espace de noms :std::chrono

Option du compilateur :/std:c++latest

operator()

Convertit un time_point type d’horloge en un autre tout en conservant le point équivalent dans le temps.

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;

Paramètres

t À time_point convertir.

Valeur retournée

1-3) Conversions d’identité. Aucune conversion. Retourne t sans aucune modification.
4) Renvoie utc_clock::to_sys(t).
5) Renvoie utc_clock::from_sys(t).

Guides de déduction

Les guides de déduction suivants sont fournis pour 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) Participe à la résolution de surcharge uniquement quand il Clock prend en charge from_sys() et retourne time_point<Clock, Duration>.
2) Participe à la résolution de surcharge uniquement lorsque Clock prend en charge to_sys() et retourne sys_time<Duration>.
3) Participe à la résolution de surcharge uniquement quand il Clock prend en charge from_utc() et retourne time_point<Clock, Duration>.
4) Participe à la résolution de surcharge uniquement quand il Clock prend en charge to_utc() et retourne utc_time<Duration>.

Exemple : 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

Voir aussi

<chrono>
clock_cast
Informations de référence sur les fichiers d’en-tête