Espacios de nombres
Variantes
Acciones

std::chrono::time_point

De cppreference.com
< cpp‎ | chrono
 
 
Biblioteca de servicios
 
 
 
Definido en el archivo de encabezado <chrono>
template<

    class Clock,
    class Duration =typename Clock::duration

>class time_point;
(desde C++11)

La plantilla de clase std::chrono::time_point representa un punto en el tiempo. Se implementa como si almacenara un valor de tipo Duration que indica el intervalo de tiempo desde el inicio de la época de Clock.

Clock debe cumplir con los requisitos para Clocko ser std::chrono::local_t(desde C++20).

(hasta C++23)

Contenido

[editar]Tipos miembro

Tipo miembro Definición
clockClock, el reloj en el que se mide este punto de tiempo
durationDuration, un tipo std::chrono::duration usado para medir el tiempo desde la época.
repRep, un tipo aritmético que representa el número de tics de la duración.
periodPeriod, un tipo std::ratio que representa el período de tic de la duración.

[editar]Funciones miembro

construye un punto nuevo tiempo
Original:
constructs a new time point
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(función miembro pública)[editar]
devuelve el punto de tiempo como duración desde el inicio de su reloj
Original:
returns the time point as duration since the start of its clock
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(función miembro pública)[editar]
modifica el punto de tiempo por la duración dada
Original:
modifies the time point by the given duration
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(función miembro pública)[editar]
Incrementa o decrementa la duración.
(función miembro pública)[editar]
[estático]
devuelve el punto de tiempo correspondiente a la menor duración
Original:
returns the time point corresponding to the smallest duration
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(función miembro estática pública)[editar]
[estático]
returns the time point corresponding to the largest duration
(función miembro estática pública)[editar]

[editar]Funciones no miembro

Realiza operaciones de suma y resta que involucran un punto de tiempo.
(plantilla de función)[editar]
Compara dos puntos de tiempo.
(plantilla de función)[editar]
Convierte un punto de tiempo a otro punto de tiempo en el mismo reloj, con una duración diferente.
(plantilla de función)[editar]
Convierte un punto de tiempo a otro, redondeando hacia abajo (piso).
(plantilla de función)[editar]
Convierte un punto de tiempo a otro, redondeando hacia arriba (techo).
(plantilla de función)[editar]
Convierte un punto de tiempo a otro, redondeando al más cercano, se empata con par.
(plantilla de función)[editar]

[editar]Clases auxiliares

Especializa el rasgo std::common_type.
(especialización de plantilla de clase)[editar]

[editar]Ejemplo

#include <algorithm>#include <iostream>#include <iomanip>#include <ctime>#include <chrono>   void slow_motion(){staticint a[]{1,2,3,4,5,6,7,8,9,10,11,12};while(std::ranges::next_permutation(a).found){}// genera 12! permutaciones}   int main(){usingnamespace std::literals;// permite el uso de 24h, 1ms, 1s en lugar de,// p. ej., std::crono::horas(24), según corresponda   const std::chrono::time_point<std::chrono::system_clock> now =std::chrono::system_clock::now();   conststd::time_t t_c =std::chrono::system_clock::to_time_t(now - 24h);std::cout<<"Hace 24 horas era la hora "<<std::put_time(std::localtime(&t_c), "%F %T.\n")<<std::flush;   const std::chrono::time_point<std::chrono::steady_clock> start =std::chrono::steady_clock::now();   slow_motion();   constauto end =std::chrono::steady_clock::now();   std::cout<<"Los cálculos lentos tomaron "<<std::chrono::duration_cast<std::chrono::microseconds>(end - start).count()<<"µs ≈ "<<(end - start)/ 1ms <<"ms ≈ "// forma casi equivalente a la anterior, pero<<(end - start)/ 1s <<"s.\n";// usando milisegundos y según corresponda}

Posible salida:

Hace 24 horas era la hora 2021-02-15 18:28:52. Los cálculos lentos tomaron 2090448µs ≈ 2090ms ≈ 2s.

[editar]Véase también

(C++11)
Un intervalo de tiempo.
(plantilla de clase)[editar]
close