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_time
l’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