Classe duration

Mede um intervalo de tempo, como um minuto, duas horas, dez milissegundos e assim por diante.

Um duration mantém um intervalo de tempo, que é o número de tiques em uma unidade de tempo. Por exemplo, cinco minutos são cinco tiques, com cada tique a um minuto de diferença. 42 segundos são 42 tiques, com cada tique um segundo separado.

Sintaxe

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>;

Comentários

O argumento de modelo Rep descreve o tipo que é usado para manter o número de tiques do relógio no intervalo. O argumento de modelo Period é uma instanciação de ratio, que descreve o tamanho do intervalo que representa cada tique.

Membros

Construtores

Nome Descrição
duration Constrói um objeto duration.

Funções

Nome Descrição
count Retorna o número de tiques do relógio no intervalo de tempo.
max Estático. Retorna o valor máximo permitido do parâmetro de modelo Rep.
min Estático. Retorna o menor valor permitido do parâmetro de modelo Rep.
zero Estático. Na verdade, retorna Rep(0).

Operadores

Nome Descrição
duration::operator- Retorna uma cópia do objeto duration com uma contagem de tiques negados.
duration::operator-- Diminui a contagem de tiques armazenados.
duration::operator-= Subtrai a contagem em escala de um duration especificado da contagem em escala armazenada.
duration::operator+ Retorna *this.
duration::operator++ Aumenta a contagem de tiques armazenados.
duration::operator+= Adiciona a contagem em escala de um duration especificado da contagem em escala armazenada.
duration::operator= Atribui uma duração a outra.
duration::operator*= Multiplica de contagem de tiques armazenados por um valor especificado.
duration::operator/= Divide a contagem de tiques armazenados pela contagem de tiques de um objeto duration especificado.
duration::operator%= Reduz o módulo de contagem de tiques armazenados de um valor especificado.

Não membros

Modelos de função

Nome Descrição
abs Retorna o valor absoluto de duration.
ceil Retorna o menor duration representável que é maior ou igual ao duration especificado.
duration_cast Converte um objeto duration em um tipo duration de destino.
floor Retorna o maior duration representável que é menor ou igual ao duration especificado.
from_stream Analise um duration do fluxo fornecido usando o formato especificado.
round Arredonda o duration especificado para o duration representável mais próximo no tipo de destino.

Operadores

Nome Descrição
operator+ Após converter as durações adicionadas ao seu tipo comum, retorna um duration com uma contagem em escala igual à soma das contagens em escala convertidas.
operator- Após converter as durações subtraídas de seu tipo comum, retorna um duration com uma contagem em escala igual ao número de tiques no duration RHS subtraído do número de tiques no duration LHS.
operator* Depois de converter as durações que estão sendo multiplicadas por seu tipo comum, retorna um duration com uma contagem em escala igual à multiplicação das contagens em escala convertidas.
operator/ Após converter as durações divididas pelo seu tipo comum, retorna um duration com uma contagem em escala igual à divisão das contagens em escala convertidas.
operator% Após converter o duration e o divisor em seu tipo comum, retorna um duration com uma contagem em escala igual ao resto da divisão.
operator== Depois de converter os tipos duration comparados ao seu tipo comum, determina se o número de tiques é igual.
operator!= Determinar se duration não é igual a outro.
operator< Determinar se um duration é menor que outro.
operator<= Determinar se um duration é menor ou igual a outro.
operator> Determinar se um duration é maior que outro.
operator>= Determinar se um duration é maior ou igual a outro.
operator<=> Comparar um duration com outro duration. Os operadores >, >=, <=, <, != são sintetizados pelo compilador.
operator<< Gerar um duration para o fluxo fornecido.

Aliases de tipo de conveniência

Nome Descrição
duration::period Um sinônimo para o parâmetro de modelo Period.
duration::rep Um sinônimo para o parâmetro de modelo Rep.

Requisitos

Cabeçalho<chrono>:

Namespace:std::chrono

duration::count

Recupera o número de tiques do relógio no intervalo de tempo.

constexpr Rep count() const;

Retornar valor

O número de tiques do relógio no intervalo de tempo.

Construtor duration::duration

Constrói um 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
O número de tiques do período especificado por Period2.

Period2
Uma especialização de modelo std::ratio para representar o período de tiques em unidades de segundos.

R
O número de tiques de período padrão.

Rep2
Um tipo aritmético para representar o número de tiques.

Comentários

1) O construtor padrão constrói um objeto que não foi inicializado. A inicialização de valor usando chaves vazias inicializa um objeto que representa um intervalo de tempo de zero tique do relógio.

2) O construtor de cópia faz uma cópia bit a bit de d.

3) Constrói um objeto que representa um intervalo de tempo de tiques de relógio R usando um período padrão de std::ratio<1>. Para evitar o arredondamento de contagens em escala, é um erro construir um objeto de duração de um tipo de representação Rep2 que pode ser tratado como um tipo de ponto flutuante quando duration::rep não pode ser tratado como um tipo de ponto flutuante.

4) Constrói um objeto que representa um intervalo de tempo cujo tamanho é o intervalo de tempo especificado por Dur. Para evitar o truncamento de contagens em escala, é um erro construir um objeto de duração de outro objeto de duração cujo tipo é incomensurável com o tipo de destino.

Um tipo de duração D1 será incomensurável com outro tipo de duração D2 se D2 não puder ser tratado como um tipo de ponto flutuante e ratio_divide<D1::period, D2::period>::type::den não for 1.

A menos que Rep2 seja implicitamente conversível em rep e for treat_as_floating_point<rep>verdadeiro ou treat_as_floating_point<Rep2>falso, o segundo construtor não participará da resolução de sobrecarga. Para obter mais informações, confira <type_traits>.

A menos que nenhum estouro seja induzido na conversão e for treat_as_floating_point<rep>verdadeiro ou ratio_divide<Period2, period>::den for igual a 1 e treat_as_floating_point<Rep2>falso, o terceiro construtor não participará da resolução de sobrecarga. Para obter mais informações, confira <type_traits>.

Exemplo: criar um 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

O método estático que retorna o limite superior para valores de tipo de parâmetro de modelo Rep.

static constexpr duration max();

Retornar valor

Na verdade, retorna duration(duration_values<rep>::max()).

duration::min

O método estático que retorna o limite inferior para valores de tipo de parâmetro de modelo Rep.

static constexpr duration min();

Retornar valor

Na verdade, retorna duration(duration_values<rep>::min()).

duration::operator-

Retorna uma cópia do objeto duration com uma contagem de tiques negados.

constexpr duration operator-() const;

duration::operator--

Diminui a contagem de tiques armazenados.

1) duration& operator--();
2) duration operator--(int);

Retornar valor

1) Retorna *this. 2) Retorna uma cópia de *this antes do decremento.

duration::operator%=

Reduz o módulo de contagem em escala armazenado de um valor especificado.

1) duration& operator%=(const rep& Div);
2) duration& operator%=(const duration& Div);

Parâmetros

Div
1) Div uma contagem em escala. 2) Div um duration que contém uma contagem em escala.

Retornar valor

O objeto duration após a operação do módulo ser concluída.

duration::operator*=

Multiplica de contagem de tiques armazenados por um valor especificado.

duration& operator*=(const rep& Mult);

Parâmetros

Mult
Um valor do tipo especificado por duration::rep.

Retornar valor

O objeto duration após a multiplicação ser concluída.

duration::operator/=

Divide a contagem de tiques armazenados por um valor especificado.

duration& operator/=(const rep& Div);

Parâmetros

Div
Um valor do tipo especificado por duration::rep.

Retornar valor

O objeto duration após a divisão ser concluída.

duration::operator+

Retorna *this.

constexpr duration operator+() const;

Retornar valor

*this

duration::operator++

Aumenta a contagem de tiques armazenados.

1) duration& operator++();
2) duration operator++(int);

Retornar valor

1) Retorna *this. 2) Retorna uma cópia de *this antes do incremento.

duration::operator+=

Adiciona a contagem de tiques de um objeto duration especificado para a contagem de tiques armazenados.

duration& operator+=(const duration& Dur);

Parâmetros

Dur
Um objeto duration.

Retornar valor

O objeto duration depois que a adição é executada.

duration::operator-=

Subtrai a contagem de tiques de um objeto duration especificado da contagem de tiques armazenados.

duration& operator-=(const duration& Dur);

Parâmetros

Dur
Um objeto duration.

Retornar valor

O objeto duration depois que a subtração é executada.

duration::zero

Retorna duration(duration_values<rep>::zero()).

static constexpr duration zero();

duration::operator=

Atribui uma duração a outra.

duration& operator=(const duration &other) = default;

Parâmetros

other
O objeto duration a ser copiado.

Retornar valor

O objeto duration LHS.

Confira também

<chrono>
Typedefs duration de conveniência, como minutes, seconds e mais
Literais de conveniência por horas, minutos e mais
Estrutura duration_values
Referência de Arquivos de Cabeçalho