Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
Estructura
Rasgo que especifica cómo convertir un time_point de un tipo de reloj a otro, manteniendo el punto equivalente en el tiempo.
Sintaxis
// 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>;
Parámetros de plantilla
Clock
Tipo de reloj desde o hacia el que se va a convertir.
Dest
Tipo de reloj hacia el que se va a convertir.
Source
Tipo de reloj desde el que se va a convertir.
Los rasgos proporcionan las conversiones siguientes:
1) Estructura vacía que se define solo para que se pueda especializar.
2-4) Conversiones de identidad. Devuelve el mismo reloj que pasa.
5-6) La conversión entre sys_time y utc_time llama a utc_clock::to_sys o utc_clock::from_sys dependiendo de la dirección de la conversión.
7-8) La conversión entre sys_time y el reloj especificado, cuando el reloj especificado admite to_sys y from_sys, da como resultado una llamada a Clock::to_sys o Clock::from_sys, dependiendo de la dirección de la conversión.
9-10) Convertir entre utc_time y el reloj especificado, cuando el reloj especificado admite from_utc y to_sys, da como resultado una llamada a Clock::to_utc o Clock::from_utc, dependiendo de la dirección de la conversión.
Miembros
| Nombre | Descripción |
|---|---|
operator () |
Convierte un time_point de un reloj en otro. |
Comentarios
Normalmente no usará este rasgo directamente en el código. Lo usa la función de conversión clock_cast.
Requisitos
Encabezado<chrono>:
Espacio de nombres: std::chrono
Opción del compilador:/std:c++latest
operator()
Convierte un time_point de un tipo de reloj a otro mientras mantiene el punto equivalente en el tiempo.
Sintaxis
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;
Parámetros
t
Objeto time_point que se va a convertir.
Valor devuelto
1-3) Conversiones de identidad. Sin conversión. Devuelve t sin cambios.
4) Devuelve utc_clock::to_sys(t).
5) Devuelve utc_clock::from_sys(t).
Guías de deducción
Se proporcionan las siguientes guías de deducción para 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) Participa en la resolución de sobrecarga solo cuando Clock admite from_sys() y devuelve time_point<Clock, Duration>.
2) Participa en la resolución de sobrecarga solo cuando Clock admite to_sys() y devuelve sys_time<Duration>.
3) Participa en la resolución de sobrecarga solo cuando Clock admite from_utc() y devuelve time_point<Clock, Duration>.
4) Participa en la resolución de sobrecarga solo cuando Clock admite to_utc() y devuelve utc_time<Duration>.
Ejemplo: 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