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;
Valor retornado
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();
Valor retornado
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();
Valor retornado
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);
Valor retornado
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.
Valor retornado
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
.
Valor retornado
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
.
Valor retornado
O objeto duration
após a divisão ser concluída.
duration::operator+
Retorna *this
.
constexpr duration operator+() const;
Valor retornado
*this
duration::operator++
Aumenta a contagem de tiques armazenados.
1) duration& operator++();
2) duration operator++(int);
Valor retornado
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
.
Valor retornado
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
.
Valor retornado
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.
Valor retornado
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