Namespaces
Variants

std::chrono:: clock_time_conversion

From cppreference.net
Défini dans l'en-tête <chrono>
template < class Dest, class Source >
struct clock_time_conversion { } ;
(depuis C++20)

std::chrono::clock_time_conversion est un trait qui spécifie comment convertir un std::chrono::time_point de l'horloge Source en celui de l'horloge Dest . Il le fait en fournissant un operator() const-appelable qui accepte un argument de type std:: chrono :: time_point < Source, Duration > et retourne un std:: chrono :: time_point < Dest, OtherDuration > qui représente un point équivalent dans le temps. La durée du point temporel retourné est calculée à partir de la durée source d'une manière qui varie pour chaque spécialisation. clock_time_conversion est normalement utilisé uniquement indirectement, via std::chrono::clock_cast .

Un programme peut spécialiser clock_time_conversion si au moins un des paramètres de template est un type d'horloge défini par l'utilisateur.

Le modèle principal est une structure vide. La norme définit les spécialisations suivantes :

template < class Clock >
struct clock_time_conversion < Clock, Clock > ;
(1) (depuis C++20)
template <>
struct clock_time_conversion < std:: chrono :: system_clock , std:: chrono :: system_clock > ;
(2) (depuis C++20)
template <>
struct clock_time_conversion < std:: chrono :: utc_clock , std:: chrono :: utc_clock > ;
(3) (depuis C++20)
template <>
struct clock_time_conversion < std:: chrono :: system_clock , std:: chrono :: utc_clock > ;
(4) (depuis C++20)
template <>
struct clock_time_conversion < std:: chrono :: utc_clock , std:: chrono :: system_clock > ;
(5) (depuis C++20)
template < class Clock >
struct clock_time_conversion < Clock, std:: chrono :: system_clock > ;
(6) (depuis C++20)
template < class Clock >
struct clock_time_conversion < std:: chrono :: system_clock , Clock > ;
(7) (depuis C++20)
template < class Clock >
struct clock_time_conversion < Clock, std:: chrono :: utc_clock > ;
(8) (depuis C++20)
template < class Clock >
struct clock_time_conversion < std:: chrono :: utc_clock , Clock > ;
(9) (depuis C++20)
1-3) Conversion d'identité : operator() renvoie une copie de l'argument.
4,5) Conversions entre std::chrono::sys_time et std::chrono::utc_time : operator() appelle respectivement std::chrono::utc_clock::to_sys et std::chrono::utc_clock::from_sys .
6,7) Conversions vers et depuis std::chrono::sys_time lorsque Clock prend en charge from_sys et to_sys : operator() appelle Clock :: to_sys et Clock :: from_sys , respectivement.
8,9) Conversions vers et depuis std::chrono::utc_time lorsque Clock prend en charge from_utc et to_utc : operator() appelle Clock :: to_utc et Clock :: from_utc , respectivement.

Table des matières

Fonctions membres

Chaque spécialisation possède un constructeur par défaut implicitement déclaré, un constructeur de copie, un constructeur de déplacement, un opérateur d'affectation par copie, un opérateur d'affectation par déplacement et un destructeur.

std::chrono::clock_time_conversion:: opérateur()

template < class Duration >

std:: chrono :: time_point < Clock, Duration >

operator ( ) ( const std:: chrono :: time_point < Clock, Duration > & t ) const ;
(1) (membre de la spécialisation (1) )
template < class Duration >

std:: chrono :: sys_time < Duration >

operator ( ) ( const std:: chrono :: sys_time < Duration > & t ) const ;
(2) (membre de la spécialisation (2) )
template < class Duration >

std:: chrono :: utc_time < Duration >

operator ( ) ( const std:: chrono :: utc_time < Duration > & t ) const ;
(3) (membre de la spécialisation (3) )
template < class Duration >

std:: chrono :: sys_time < Duration >

operator ( ) ( const std:: chrono :: utc_time < Duration > & t ) const ;
(4) (membre de la spécialisation (4) )
template < class Duration >

std:: chrono :: utc_time < Duration >

operator ( ) ( const std:: chrono :: sys_time < Duration > & t ) const ;
(5) (membre de la spécialisation (5) )
template < class Duration >

auto operator ( ) ( const std:: chrono :: sys_time < Duration > & t ) const

- > decltype ( Clock :: from_sys ( t ) ) ;
(6) (membre de la spécialisation (6) )
template < class Duration >

auto operator ( ) ( const std:: chrono :: time_point < SourceClock, Duration > & t ) const

- > decltype ( Clock :: to_sys ( t ) ) ;
(7) (membre de la spécialisation (7) )
template < class Duration >

auto operator ( ) ( const std:: chrono :: utc_time < Duration > & t ) const

- > decltype ( Clock :: from_utc ( t ) ) ;
(8) (membre de la spécialisation (8) )
template < class Duration >

auto operator ( ) ( const std:: chrono :: time_point < Clock, Duration > & t ) const

- > decltype ( Clock :: to_utc ( t ) ) ;
(9) (membre de la spécialisation (9) )

Convertit l'argument std::chrono::time_point vers l'horloge de destination.

1-3) Conversion d'identité. Renvoie t inchangé.
6) Retourne Clock :: from_sys ( t ) . Cette surcharge participe à la résolution de surcharge uniquement si l'expression Clock :: from_sys ( t ) est bien formée. Le programme est mal formé si Clock :: from_sys ( t ) ne retourne pas std:: chrono :: time_point < Clock, Duration > Duration est une spécialisation valide de std::chrono::duration .
7) Retourne Clock :: to_sys ( t ) . Cette surcharge participe à la résolution de surcharge uniquement si l'expression Clock :: to_sys ( t ) est bien formée. Le programme est mal formé si Clock :: to_sys ( t ) ne retourne pas std:: chrono :: sys_time < Duration > Duration est une spécialisation valide de std::chrono::duration .
8) Retourne Clock :: from_utc ( t ) . Cette surcharge participe à la résolution de surcharge uniquement si l'expression Clock :: from_utc ( t ) est bien formée. Le programme est mal formé si Clock :: from_utc ( t ) ne retourne pas std:: chrono :: time_point < Clock, Duration > Duration est une spécialisation valide de std::chrono::duration .
9) Retourne Clock :: to_utc ( t ) . Cette surcharge participe à la résolution de surcharge uniquement si l'expression Clock :: to_utc ( t ) est bien formée. Le programme est mal formé si Clock :: to_utc ( t ) ne retourne pas std:: chrono :: utc_time < Duration > Duration est une spécialisation valide de std::chrono::duration .

Paramètres

t - point temporel à convertir

Valeur de retour

Le résultat de la conversion tel que décrit ci-dessus :

1-3) t .
6) Clock :: from_sys ( t ) .
7) Clock :: to_sys ( t ) .
8) Clock :: from_utc ( t ) .
9) Clock :: to_utc ( t ) .

Voir aussi

(C++20)
convertir les points temporels d'une horloge vers une autre
(modèle de fonction)