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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour