Clase duration
Mide un intervalo de tiempo, como un minuto, dos horas, diez milisegundos, etc.
La clase duration
contiene un intervalo de tiempo, que es el número de tics en una unidad de tiempo. Por ejemplo, cinco minutos son cinco ciclos, los cuales están separados entre sí por intervalos de minuto. 42 segundos son 42 ciclos, los cuales están separados entre sí por intervalos de un segundo.
Sintaxis
template <class Rep, class Period> class duration;
template <class Rep, class Period = ratio<1>> class duration;
template <class Rep, class Period1, class Period2> class duration <duration<Rep, Period1>, Period2>;
Comentarios
El argumento de plantilla Rep
describe el tipo que se utiliza para almacenar el número de ciclos de reloj del intervalo. El argumento de plantilla Period
es una creación de instancias de ratio
que describe el tamaño del intervalo que representa cada ciclo.
Miembros
Constructores
Nombre | Descripción |
---|---|
duration |
Construye un objeto duration . |
Funciones
Nombre | Descripción |
---|---|
count |
Devuelve el número de pasos del reloj del intervalo de tiempo. |
max |
Estática. Devuelve el valor máximo permitido del parámetro de plantilla Rep . |
min |
Estática. Devuelve el valor mínimo permitido del parámetro de plantilla Rep . |
zero |
Estática. En efecto, devuelve Rep(0) . |
Operadores
Nombre | Descripción |
---|---|
duration::operator- |
Devuelve una copia del objeto duration con un contador negado. |
duration::operator-- |
Disminuye el recuento de pasos almacenado. |
duration::operator-= |
Resta el contador de un objeto duration especificado del contador almacenado. |
duration::operator+ |
Devuelve *this . |
duration::operator++ |
Incrementa el recuento de pasos almacenado. |
duration::operator+= |
Suma el contador de un objeto duration especificado al contador almacenado. |
duration::operator= |
Asigna una duración a otra. |
duration::operator*= |
Multiplica el recuento de pasos almacenado por un valor especificado. |
duration::operator/= |
Divide el recuento de pasos almacenado por el recuento de pasos de un objeto duration especificado. |
duration::operator%= |
Reduce el módulo del recuento de pasos almacenado en un valor especificado. |
No miembros
Plantillas de función
Nombre | Descripción |
---|---|
abs |
Devuelve el valor absoluto de duration . |
ceil |
Devuelve el elemento duration más pequeño que se puede representar que es mayor o igual que el elemento duration especificado. |
duration_cast |
Convierte un objeto duration a un tipo duration de destino. |
floor |
Devuelve el elemento duration más grande que se puede representar que es menor o igual que el elemento duration especificado. |
from_stream |
Analiza un duration desde la secuencia especificada con el formato indicado. |
round |
Redondea el elemento duration especificado al elemento duration más cercano que se puede representar en el tipo de destino. |
Operadores
Nombre | Descripción |
---|---|
operator+ |
Después de convertir las duraciones que se agregan a su tipo común, devuelve un elemento duration con un contador igual a la suma de los contadores convertidos. |
operator- |
Después de convertir las duraciones que se restan a su tipo común, devuelve un elemento duration con un contador igual al número de ciclos del elemento duration RHS restado del número de ciclos del elemento duration LHS. |
operator* |
Después de convertir las duraciones que se multiplican a su tipo común, devuelve un elemento duration con un contador igual a la multiplicación de los contadores convertidos. |
operator/ |
Después de convertir las duraciones que se dividen a su tipo común, devuelve un elemento duration con un contador igual a la división de los contadores convertidos. |
operator% |
Después de convertir el elemento duration y el divisor a su tipo común, devuelve un elemento duration con un contador igual al resto de la división. |
operator== |
Después de convertir los tipos duration que se comparan con su tipo común, determina si el número de ciclos es igual. |
operator!= |
Determina si el elemento duration no es igual a otro. |
operator< |
Determina si un elemento duration es menor que otro. |
operator<= |
Determina si un elemento duration es menor o igual que otro. |
operator> |
Determina si un elemento duration es mayor que otro. |
operator>= |
Determina si un elemento duration es mayor o igual que otro. |
operator<=> |
Compara un elemento duration con otro elemento duration . El compilador sintetiza los operadores >, >=, <=, <, != . |
operator<< |
Genera un elemento duration en la secuencia especificada. |
Alias de tipo de conveniencia
Nombre | Descripción |
---|---|
duration::period |
Sinónimo del parámetro de plantilla Period . |
duration::rep |
Sinónimo del parámetro de plantilla Rep . |
Requisitos
Encabezado: <chrono>
Espacio de nombres: std::chrono
duration::count
Recupera el número de ciclos del reloj del intervalo de tiempo.
constexpr Rep count() const;
Valor devuelto
Número de ciclos del reloj del intervalo de tiempo.
Constructor duration::duration
Construye un objeto duration
.
1) constexpr duration() = default;
2) constexpr duration(const duration& d) = default;
3) template <class Rep2>
constexpr explicit duration(const Rep2& R);
4) template <class Rep2, class Period2>
constexpr duration(const duration<Rep2, Period2>& Dur);
Parámetros
Dur
El número de ciclos del período especificado por Period2
.
Period2
Una especialización de plantilla std::ratio
para representar el período de ciclo en unidades de segundos.
R
El número de ciclos del período predeterminado.
Rep2
Un tipo aritmético para representar el número de ciclos.
Comentarios
1) El constructor predeterminado crea un objeto que no se ha inicializado. La inicialización de un valor mediante llaves vacías inicializa un objeto que representa un intervalo de tiempo de cero ciclos de reloj.
2) El constructor de copia realiza una copia bit a bit de d
.
3) Crea un objeto que representa un intervalo de tiempo de R
ciclos de reloj con un período predeterminado de std::ratio<1>
. Para evitar el redondeo de los contadores, es un error construir un objeto de duración a partir de un tipo de representación Rep2
que se puede tratar como un tipo de punto flotante cuando duration::rep
no se puede tratar como un tipo de punto flotante.
4) Crea un objeto que representa un intervalo de tiempo cuya longitud es el intervalo de tiempo especificado por Dur
. Para evitar el truncamiento de los contadores, es un error construir un objeto de duración a partir de otro objeto de duración cuyo tipo es inconmensurable con el tipo de destino.
Un tipo de duración D1
es inconmensurable con otro tipo de duración D2
si D2
no se puede tratar como un tipo de punto flotante y ratio_divide<D1::period, D2::period>::type::den no es 1.
A menos que Rep2
sea convertible de forma implícita a rep
y treat_as_floating_point<rep>
sea True o treat_as_floating_point<Rep2>
sea False, el segundo constructor no participa en la resolución de sobrecarga. Para obtener más información, consulte <type_traits>.
A menos que no se induzca ningún desbordamiento en la conversión y treat_as_floating_point<rep>
sea True, o ratio_divide<Period2, period>::den
sea igual a 1 y treat_as_floating_point<Rep2>
sea False, el tercer constructor no participa en la resolución de sobrecarga. Para obtener más información, consulte <type_traits>.
Ejemplo: Creación de un objeto duration
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
// create a duration that tracks ticks as 1/10ths of a second
duration<int, std::ratio<1, 10>> tenths{ 5 };
std::cout << tenths << '\n';
hours h{12}; // hours is a convenience duration typedef
auto h2 = 3h; // 'h' is a convenience operator. h2 is a duration<int, std::ratio<3600,1>>
std::cout << h << ":" << h2 << '\n';
return 0;
}
5ds
3h:3h
duration::max
Método estático que devuelve el límite superior para los valores de tipo de parámetro de plantilla Rep
.
static constexpr duration max();
Valor devuelto
En efecto, devuelve duration(duration_values<rep>::max())
.
duration::min
Método estático que devuelve el límite inferior para los valores de tipo de parámetro de plantilla Rep
.
static constexpr duration min();
Valor devuelto
En efecto, devuelve duration(duration_values<rep>::min())
.
duration::operator-
Devuelve una copia del objeto duration
con un contador negado.
constexpr duration operator-() const;
duration::operator--
Disminuye el recuento de pasos almacenado.
1) duration& operator--();
2) duration operator--(int);
Valor devuelto
1) Devuelve *this
.
2) Devuelve una copia de *this
antes del decremento.
duration::operator%=
Reduce el módulo del contador almacenado en el valor especificado.
1) duration& operator%=(const rep& Div);
2) duration& operator%=(const duration& Div);
Parámetros
Div
1) Realiza una operación Div
en un contador.
2) Realiza una operación Div
en un elemento duration
que contiene un contador.
Valor devuelto
El objeto duration
después de realizarse la operación de módulo.
duration::operator*=
Multiplica el recuento de pasos almacenado por un valor especificado.
duration& operator*=(const rep& Mult);
Parámetros
Mult
Valor del tipo especificado por duration::rep
.
Valor devuelto
El objeto duration
después del cual se realiza la multiplicación.
duration::operator/=
Divide el recuento de pasos almacenado por un valor especificado.
duration& operator/=(const rep& Div);
Parámetros
Div
Valor del tipo especificado por duration::rep
.
Valor devuelto
El objeto duration
después del cual se realiza la división.
duration::operator+
Devuelve *this
.
constexpr duration operator+() const;
Valor devuelto
*this
duration::operator++
Incrementa el recuento de pasos almacenado.
1) duration& operator++();
2) duration operator++(int);
Valor devuelto
1) Devuelve *this
.
2) Devuelve una copia de *this
antes del incremento.
duration::operator+=
Suma el recuento de pasos de un objeto duration
especificado al recuento de pasos almacenado.
duration& operator+=(const duration& Dur);
Parámetros
Dur
Un objeto duration
.
Valor devuelto
El objeto duration
después de realizar la suma.
duration::operator-=
Resta el recuento de pasos de un objeto duration
especificado del recuento de pasos almacenado.
duration& operator-=(const duration& Dur);
Parámetros
Dur
Un objeto duration
.
Valor devuelto
El objeto duration
después de realizar la resta.
duration::zero
Devuelve duration(duration_values<rep>::zero())
.
static constexpr duration zero();
duration::operator=
Asigna una duración a otra.
duration& operator=(const duration &other) = default;
Parámetros
other
El objeto duration
que se va a copiar.
Valor devuelto
El objeto duration
LHS.
Consulte también
<chrono>
Definiciones de tipos duration
de conveniencia, como minutes
, seconds
y más
Literales de conveniencia para horas, minutos y más
Estructura duration_values
Referencia de archivos de encabezado