Namespaces
Variants

std::chrono:: clock_time_conversion

From cppreference.net
Definido en el encabezado <chrono>
template < class Dest, class Source >
struct clock_time_conversion { } ;
(desde C++20)

std::chrono::clock_time_conversion es un rasgo que especifica cómo convertir un std::chrono::time_point del reloj Source al del reloj Dest . Lo hace proporcionando un operator() invocable constante que acepta un argumento de tipo std:: chrono :: time_point < Source, Duration > y devuelve un std:: chrono :: time_point < Dest, OtherDuration > que representa un punto equivalente en el tiempo. La duración del tiempo devuelto se calcula a partir de la duración fuente de una manera que varía para cada especialización. clock_time_conversion normalmente solo se utiliza indirectamente, a través de std::chrono::clock_cast .

Un programa puede especializar clock_time_conversion si al menos uno de los parámetros de plantilla es un tipo de reloj definido por el usuario.

La plantilla principal es una estructura vacía. El estándar define las siguientes especializaciones:

template < class Clock >
struct clock_time_conversion < Clock, Clock > ;
(1) (desde C++20)
template <>
struct clock_time_conversion < std:: chrono :: system_clock , std:: chrono :: system_clock > ;
(2) (desde C++20)
template <>
struct clock_time_conversion < std:: chrono :: utc_clock , std:: chrono :: utc_clock > ;
(3) (desde C++20)
template <>
struct clock_time_conversion < std:: chrono :: system_clock , std:: chrono :: utc_clock > ;
(4) (desde C++20)
template <>
struct clock_time_conversion < std:: chrono :: utc_clock , std:: chrono :: system_clock > ;
(5) (desde C++20)
template < class Clock >
struct clock_time_conversion < Clock, std:: chrono :: system_clock > ;
(6) (desde C++20)
template < class Clock >
struct clock_time_conversion < std:: chrono :: system_clock , Clock > ;
(7) (desde C++20)
template < class Clock >
struct clock_time_conversion < Clock, std:: chrono :: utc_clock > ;
(8) (desde C++20)
template < class Clock >
struct clock_time_conversion < std:: chrono :: utc_clock , Clock > ;
(9) (desde C++20)
1-3) Conversión de identidad: operator() devuelve una copia del argumento.
4,5) Conversiones entre std::chrono::sys_time y std::chrono::utc_time : operator() llama a std::chrono::utc_clock::to_sys y std::chrono::utc_clock::from_sys , respectivamente.
6,7) Conversiones hacia y desde std::chrono::sys_time cuando Clock soporta from_sys y to_sys : operator() llama a Clock :: to_sys y Clock :: from_sys , respectivamente.
8,9) Conversiones hacia y desde std::chrono::utc_time cuando Clock soporta from_utc y to_utc : operator() llama a Clock :: to_utc y Clock :: from_utc , respectivamente.

Contenidos

Funciones miembro

Cada especialización tiene un constructor predeterminado declarado implícitamente, constructor de copia, constructor de movimiento, operador de asignación de copia, operador de asignación de movimiento y destructor.

std::chrono::clock_time_conversion:: operador()

template < class Duration >

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

operador ( ) ( const std:: chrono :: time_point < Clock, Duration > & t ) const ;
(1) (miembro de la especialización (1) )
template < class Duration >

std:: chrono :: sys_time < Duration >

operador ( ) ( const std:: chrono :: sys_time < Duration > & t ) const ;
(2) (miembro de especialización (2) )
template < class Duration >

std:: chrono :: utc_time < Duration >

operador ( ) ( const std:: chrono :: utc_time < Duration > & t ) const ;
(3) (miembro de la especialización (3) )
template < class Duration >

std:: chrono :: sys_time < Duration >

operator ( ) ( const std:: chrono :: utc_time < Duration > & t ) const ;
(4) (miembro de la especialización (4) )
template < class Duration >

std:: chrono :: utc_time < Duration >

operator ( ) ( const std:: chrono :: sys_time < Duration > & t ) const ;
(5) (miembro de la especialización (5) )
template < class Duration >

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

- > decltype ( Clock :: from_sys ( t ) ) ;
(6) (miembro de la especialización (6) )
template < class Duration >

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

- > decltype ( Clock :: to_sys ( t ) ) ;
(7) (miembro de la especialización (7) )
template < class Duration >

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

- > decltype ( Clock :: from_utc ( t ) ) ;
(8) (miembro de la especialización (8) )
template < class Duration >

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

- > decltype ( Clock :: to_utc ( t ) ) ;
(9) (miembro de la especialización (9) )

Convierte el argumento std::chrono::time_point al reloj de destino.

1-3) Conversión de identidad. Devuelve t sin cambios.
6) Devuelve Clock :: from_sys ( t ) . Esta sobrecarga participa en la resolución de sobrecargas solo si la expresión Clock :: from_sys ( t ) está bien formada. El programa está mal formado si Clock :: from_sys ( t ) no devuelve std:: chrono :: time_point < Clock, Duration > donde Duration es alguna especialización válida de std::chrono::duration .
7) Devuelve Clock :: to_sys ( t ) . Esta sobrecarga participa en la resolución de sobrecargas solo si la expresión Clock :: to_sys ( t ) está bien formada. El programa está mal formado si Clock :: to_sys ( t ) no devuelve std:: chrono :: sys_time < Duration > donde Duration es alguna especialización válida de std::chrono::duration .
8) Devuelve Clock :: from_utc ( t ) . Esta sobrecarga participa en la resolución de sobrecargas solo si la expresión Clock :: from_utc ( t ) está bien formada. El programa está mal formado si Clock :: from_utc ( t ) no devuelve std:: chrono :: time_point < Clock, Duration > donde Duration es alguna especialización válida de std::chrono::duration .
9) Devuelve Clock :: to_utc ( t ) . Esta sobrecarga participa en la resolución de sobrecargas solo si la expresión Clock :: to_utc ( t ) está bien formada. El programa está mal formado si Clock :: to_utc ( t ) no devuelve std:: chrono :: utc_time < Duration > donde Duration es alguna especialización válida de std::chrono::duration .

Parámetros

t - punto temporal a convertir

Valor de retorno

El resultado de la conversión como se describió anteriormente:

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

Véase también

(C++20)
convertir puntos de tiempo de un reloj a otro
(plantilla de función)