Condividi tramite


Classe duration

Misura un intervallo di tempo, ad esempio un minuto, due ore, dieci millisecondi e così via.

Un duration oggetto contiene un intervallo di tempo, ovvero il numero di tick in un'unità di tempo. Ad esempio, cinque minuti sono cinque tick, con ogni graduazione a distanza di un minuto. 42 secondi è di 42 tick, con ogni graduazione un secondo a parte.

Sintassi

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

Osservazioni:

L'argomento di modello Rep descrive il tipo usato per contenere il numero di tick nell'intervallo. L'argomento Period modello è una creazione di un'istanza di ratio che descrive le dimensioni dell'intervallo rappresentato da ogni graduazione.

Membri

Costruttori

Nome Descrizione
duration Costruisce un oggetto duration.

Funzioni

Nome Descrizione
count Recupera il numero di tick nell'intervallo di tempo.
max Statico. Restituisce il valore massimo consentito di parametro di modello Rep.
min Statico. Restituisce il valore minimo consentito di parametro di modello Rep.
zero Statico. In effetti, restituisce Rep(0).

Operatori

Nome Descrizione
duration::operator- Restituisce una copia dell'oggetto duration con un conteggio dei tick negati.
duration::operator-- Decrementa il conteggio dei tick archiviati.
duration::operator-= Sottrae il conteggio dei tick di un oggetto specificato duration dal conteggio dei tick archiviati.
duration::operator+ Restituisce *this.
duration::operator++ Incrementa il conteggio dei tick archiviati.
duration::operator+= Aggiunge il conteggio dei tick di un oggetto specificato duration al conteggio dei tick archiviati.
duration::operator= Assegna una durata a un'altra.
duration::operator*= Moltiplica il conteggio dei tick archiviati per un valore specificato.
duration::operator/= Divide il conteggio dei tick archiviati per il numero di tick di un oggetto duration specificato.
duration::operator%= Riduce il modulo del conteggio dei tick archiviati a un valore specifico.

Membri non membri

Modelli di funzione

Nome Descrizione
abs Restituisce il valore assoluto dell'oggetto duration.
ceil Restituisce il più piccolo rappresentabile duration maggiore o uguale all'oggetto specificato duration.
duration_cast Esegue il cast di un duration oggetto a un tipo di destinazione duration specificato.
floor Restituisce il massimo rappresentabile duration minore o uguale all'oggetto specificato duration.
from_stream Analizzare un oggetto duration dal flusso specificato usando il formato specificato.
round Arrotonda l'oggetto specificato duration al più vicino rappresentabile duration nel tipo di destinazione.

Operatori

Nome Descrizione
operator+ Dopo aver convertito le durate aggiunte al tipo comune, restituisce un duration oggetto con un conteggio dei tick uguale alla somma dei conteggi dei tick convertiti.
operator- Dopo aver convertito le durate sottratte al tipo comune, restituisce un duration oggetto con un conteggio dei tick uguale al numero di tick nell'rhS duration sottratto dal numero di tick nell'LHS duration.
operator* Dopo aver convertito le durate moltiplicate nel tipo comune, restituisce un duration oggetto con un conteggio dei tick uguale alla moltiplicazione dei conteggi dei tick convertiti.
operator/ Dopo aver convertito le durate divise nel tipo comune, restituisce un duration oggetto con un conteggio dei tick uguale alla divisione dei conteggi dei tick convertiti.
operator% Dopo aver duration convertito e il divisore nel tipo comune, restituisce un duration oggetto con un conteggio dei tick uguale al resto della divisione.
operator== Dopo aver convertito i duration tipi confrontati con il tipo comune, determina se il numero di tick è uguale.
operator!= Determinare se duration non è uguale a un altro.
operator< Determinare se uno duration è minore di un altro.
operator<= Determinare se uno duration è minore o uguale a un altro.
operator> Determinare se uno duration è maggiore di un altro.
operator>= Determinare se uno duration è maggiore o uguale a un altro.
operator<=> Confrontare uno duration con l'altro duration. Gli >, >=, <=, <, != operatori vengono sintetizzati dal compilatore.
operator<< Restituisce un oggetto duration nel flusso specificato.

Alias del tipo di praticità

Nome Descrizione
duration::period Sinonimo del parametro di modello Period.
duration::rep Sinonimo del parametro di modello Rep.

Requisiti

Intestazione: <chrono>

Spazio dei nomi: std::chrono

duration::count

Recupera il numero di tick del clock nell'intervallo di tempo.

constexpr Rep count() const;

Valore restituito

Recupera il numero di tick del clock nell'intervallo di tempo.

Costruttore duration::duration

Costruisce un oggetto 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);

Parametri

Dur
Numero di tick del periodo specificato da Period2.

Period2
Specializzazione modello std::ratio per rappresentare il periodo di tick in unità di secondi.

R
Numero di tick del periodo predefinito.

Rep2
Tipo aritmetico per rappresentare il numero di tick.

Osservazioni:

1) Il costruttore predefinito costruisce un oggetto non inizializzato. L'inizializzazione del valore con parentesi graffe vuote inizializza un oggetto che rappresenta un intervallo di tempo di zero tick.

2) Il costruttore di copia crea una copia bit per bit di d.

3) Costruisce un oggetto che rappresenta un intervallo di tempo di tick di R clock usando un periodo predefinito di std::ratio<1>. Per evitare l'arrotondamento dei conteggi dei tick, si tratta di un errore per costruire un oggetto duration da un tipo di rappresentazione che può essere considerato come un tipo Rep2 a virgola mobile quando duration::rep non può essere considerato come un tipo a virgola mobile.

4) Costruisce un oggetto che rappresenta un intervallo di tempo la cui lunghezza è l'intervallo di tempo specificato da Dur. Per evitare il troncamento dei conteggi dei tick, si tratta di un errore per costruire un oggetto duration da un altro oggetto duration il cui tipo è incommensurabile con il tipo di destinazione.

Un tipo D1 di durata è incommensurabile con un altro tipo di D2 durata se D2 non può essere considerato come un tipo a virgola mobile e ratio_divide<D1::p eriod, D2::p eriod>::type::d en non è 1.

A meno che Rep2 non sia convertibile rep in modo implicito in e treat_as_floating_point<rep>contenga true o treat_as_floating_point<Rep2>contiene false, il secondo costruttore non partecipa alla risoluzione dell'overload. Per altre informazioni, vedere <type_traits>.

A meno che non venga indotto alcun overflow nella conversione e treat_as_floating_point<rep>contenga true o entrambi ratio_divide<Period2, period>::den è uguale a 1 e treat_as_floating_point<Rep2>contiene false, il terzo costruttore non partecipa alla risoluzione dell'overload. Per altre informazioni, vedere <type_traits>.

Esempio: Creare un oggetto 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

Metodo statico che restituisce il limite superiore per i valori di tipo Rep del parametro di modello.

static constexpr duration max();

Valore restituito

In effetti, restituisce duration(duration_values<rep>::max()).

duration::min

Metodo statico che restituisce il limite inferiore per i valori di tipo Rep del parametro modello.

static constexpr duration min();

Valore restituito

In effetti, restituisce duration(duration_values<rep>::min()).

duration::operator-

Restituisce una copia dell'oggetto duration con un conteggio dei tick negati.

constexpr duration operator-() const;

duration::operator--

Decrementa il conteggio dei tick archiviati.

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

Valore restituito

1) Restituisce *this. 2) Restituisce una copia di *this prima del decremento.

duration::operator%=

Riduce il numero di tick archiviato modulo il valore specificato.

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

Parametri

Div
1) Div un conteggio dei segni di graduazione. 2) Div oggetto duration che contiene un conteggio dei segni di graduazione.

Valore restituito

Oggetto duration al termine dell'operazione modulo.

duration::operator*=

Moltiplica il conteggio dei tick archiviati per un valore specificato.

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

Parametri

Mult
Valore del tipo specificato da duration::rep.

Valore restituito

Oggetto duration dopo aver completato la moltiplicazione.

duration::operator/=

Divide il conteggio dei tick archiviati per un valore specificato.

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

Parametri

Div
Valore del tipo specificato da duration::rep.

Valore restituito

Oggetto duration dopo aver completato la divisione.

duration::operator+

Restituisce *this.

constexpr duration operator+() const;

Valore restituito

*this

duration::operator++

Incrementa il conteggio dei tick archiviati.

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

Valore restituito

1) Restituisce *this. 2) Restituisce una copia di prima dell'incremento *this .

duration::operator+=

Aggiunge il conteggio dei tick di un oggetto duration specificati al conteggio dei tick archiviati.

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

Parametri

Dur
Oggetto duration.

Valore restituito

Oggetto duration dopo l'aggiunta.

duration::operator-=

Sottrae il conteggio dei tick di un oggetto duration specificati dal conteggio dei tick archiviati.

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

Parametri

Dur
Oggetto duration.

Valore restituito

Oggetto duration dopo l'operazione di sottrazione.

duration::zero

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

static constexpr duration zero();

duration::operator=

Assegna una durata a un'altra.

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

Parametri

other
Oggetto duration da copiare.

Valore restituito

Oggetto LHS duration .

Vedi anche

<chrono>
Typedef di praticità duration , minutesad esempio , secondse altro ancora
Valori letterali pratici per ore, minuti e altro ancora
duration_values struttura
Riferimento file di intestazione