Compartir a través de


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