std::chrono::time_point_cast
De cppreference.com
| Definido en el archivo de encabezado <chrono>
|
||
template <class ToDuration, class Clock, class Duration> std::chrono::time_point<Clock, ToDuration> time_point_cast(const std::chrono::time_point<Clock, Duration> &t); |
(desde C++11) (hasta C++14) |
|
template <class ToDuration, class Clock, class Duration> constexpr std::chrono::time_point<Clock, ToDuration> time_point_cast(const std::chrono::time_point<Clock, Duration> &t); |
(desde C++14) | |
Convierte un std::chrono::time_point de una duración a otra.
time_point_cast participa en la resolución de sobrecarga solo si ToDuration es una especialización de std::chrono::duration.
Parámetros
| t | - | time_point a convertir.
|
Valor de retorno
std::chrono::time_point<Clock, ToDuration>( std::chrono::duration_cast<ToDuration>(t.time_since_epoch())).
Ejemplo
Ejecuta este código
#include <iostream>
#include <chrono>
using namespace std::chrono_literals;
using Reloj = std::chrono::high_resolution_clock;
using Ms = std::chrono::milliseconds;
using Sec = std::chrono::seconds;
template<class Duracion>
using PuntoDeTiempo = std::chrono::time_point<Reloj, Duracion>;
inline void imprimir_ms(const PuntoDeTiempo<Ms>& punto_de_tiempo)
{
std::cout << punto_de_tiempo.time_since_epoch().count() << " ms\n";
}
int main()
{
PuntoDeTiempo<Sec> punto_de_tiempo_seg{4s};
// conversión implícita, sin pérdida de precisión
PuntoDeTiempo<Ms> punto_de_tiempo_ms{punto_de_tiempo_seg};
imprimir_ms(punto_de_tiempo_ms); // 4000 ms
punto_de_tiempo_ms = PuntoDeTiempo<Ms>{5756ms};
imprimir_ms(punto_de_tiempo_ms); // 5756 ms
// conversión explícita, necesaria cuando puede ocurrir una pérdida de precisión
// 5756 truncado a 5000
punto_de_tiempo_seg = std::chrono::time_point_cast<Sec>(punto_de_tiempo_ms);
imprimir_ms(punto_de_tiempo_seg); // 5000 ms
}
Salida:
4000 ms
5756 ms
5000 ms
Véase también
| Convierte un punto de tiempo a otro, redondeando hacia abajo (piso). (plantilla de función) | |
| Convierte un punto de tiempo a otro, redondeando hacia arriba (techo). (plantilla de función) | |
| Convierte un punto de tiempo a otro, redondeando al más cercano, se empata con par. (plantilla de función) | |
(C++11) |
Convierte una duración a otra, con un intervalo de tic diferente. (plantilla de función) |