Freigeben über


duration-Klasse

Misst einen Zeitraum wie eine Minute, zwei Stunden, zehn Millisekunden usw.

A duration enthält ein Zeitintervall, bei dem es sich um die Anzahl der Teilstriche über eine Zeiteinheit handelt. Beispielsweise sind fünf Minuten fünf Ticks, wobei jeder Teil einer Minute auseinander ist. 42 Sekunden sind 42 Ticks, wobei jeder Teil teilt.

Syntax

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

Hinweise

Mit dem Vorlagenargument Rep wird der Typ beschrieben, der zum Aufnehmen der Anzahl von Zeiteinheiten im Intervall verwendet wird. Das Vorlagenargument Period ist eine Instanziierung, die ratio die Größe des Intervalls beschreibt, das jeder Teilstrich darstellt.

Member

Konstruktoren

Name Beschreibung
duration Erstellt ein duration-Objekt.

Functions

Name Beschreibung
count Gibt die Anzahl von Zeiteinheiten im Zeitintervall zurück.
max Statisch. Gibt den maximal zulässigen Wert des Vorlagenparameters Rep zurück.
min Statisch. Gibt den niedrigsten zulässigen Wert des Vorlagenparameters Rep zurück.
zero Statisch. Tatsächlich wird Rep(0) zurückgegeben.

Operatoren

Name Beschreibung
duration::operator- Gibt eine Kopie des duration Objekts mit einer negierten Teilstrichanzahl zurück.
duration::operator-- Verringert die gespeicherte Taktanzahl.
duration::operator-= Subtrahiert die Teilstrichanzahl einer angegebenen duration aus der gespeicherten Teilstrichanzahl.
duration::operator+ Gibt *this zurück.
duration::operator++ Erhöht die gespeicherte Taktanzahl.
duration::operator+= Fügt der gespeicherten Teilstrichanzahl eine angegebene duration Teilstrichanzahl hinzu.
duration::operator= Weist eine Dauer einem anderen zu.
duration::operator*= Multipliziert die gespeicherte Taktanzahl mit einem angegebenen Wert.
duration::operator/= Dividiert die gespeicherte Taktanzahl durch die Taktanzahl eines angegebenen duration-Objekts.
duration::operator%= Reduziert die gespeicherte Taktanzahl-Modulo um einen angegebenen Wert.

Nicht-Member

Funktionsvorlagen

Name Beschreibung
abs Gibt den absoluten Wert der duration.
ceil Gibt den kleinsten darstellbaren duration Wert zurück, der größer oder gleich dem angegebenen durationist.
duration_cast Wandelt ein duration Objekt in einen angegebenen Zieltyp duration um.
floor Gibt den größten darstellbaren duration Wert zurück, der kleiner oder gleich dem angegebenen durationwert ist.
from_stream Analysieren Eines duration aus dem angegebenen Datenstrom mithilfe des angegebenen Formats.
round Rundet den angegebenen duration Wert auf den nächstgelegenen darstellbaren duration Wert im Zieltyp ab.

Operatoren

Name Beschreibung
operator+ Nach dem Konvertieren der Dauer, die ihrem gemeinsamen Typ hinzugefügt werden, wird eine duration Teilstrichanzahl zurückgegeben, die der Summe der konvertierten Teilstrichanzahl entspricht.
operator- Nach der Konvertierung der Dauer, die in ihren gemeinsamen Typ subtrahiert wird, wird eine duration Teilstrichanzahl zurückgegeben, die der Anzahl der Teilstriche im RHS duration entspricht, die von der Anzahl der Teilstriche im LHS durationsubtrahiert wurden.
operator* Nach dem Konvertieren der Dauer, die in ihren gemeinsamen Typ multipliziert wird, wird eine duration Teilstrichanzahl zurückgegeben, die der Multiplikation der konvertierten Teilstrichanzahl entspricht.
operator/ Nach dem Konvertieren der Dauer, die in ihren gemeinsamen Typ aufgeteilt wird, wird eine duration Teilstrichanzahl zurückgegeben, die der Division der konvertierten Teilstriche entspricht.
operator% Gibt nach dem Konvertieren des duration Divisors in ihren gemeinsamen Typ eine duration Teilstrichanzahl zurück, die dem Rest der Division entspricht.
operator== Nach dem Konvertieren der Typen, die duration mit ihrem gemeinsamen Typ verglichen werden, wird ermittelt, ob die Anzahl der Teilstriche gleich ist.
operator!= Ermitteln Sie, ob duration nicht gleich einer anderen ist.
operator< Ermitteln Sie, ob eine duration kleiner als eine andere ist.
operator<= Ermitteln Sie, ob eine duration kleiner oder gleich einer anderen ist.
operator> Ermitteln Sie, ob eine duration größer als eine andere ist.
operator>= Ermitteln Sie, ob eine duration größer oder gleich einer anderen ist.
operator<=> Vergleichen Sie eins duration mit einem anderen duration. Die >, >=, <=, <, != Operatoren werden vom Compiler synthetisiert.
operator<< Gibt einen duration an den angegebenen Datenstrom aus.

Komforttypaliasen

Name Beschreibung
duration::period Ein Synonym für den Vorlagenparameter Period.
duration::rep Ein Synonym für den Vorlagenparameter Rep.

Anforderungen

Header: <chrono>

Namespace:std::chrono

duration::count

Ruft die Anzahl von Zeiteinheiten im Zeitintervall ab.

constexpr Rep count() const;

Rückgabewert

Die Anzahl von Zeiteinheiten im Zeitintervall.

duration::duration-Konstruktor

Erstellt ein duration-Objekt.

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

Parameter

Dur
Die Anzahl von Zeiteinheiten des durch Period2 angegebenen Zeitraums.

Period2
Eine std::ratio-Vorlagenspezialisierung zur Darstellung des Zeitraums von Zeiteinheiten in Sekunden.

R
Die Anzahl der Zeiteinheiten der Standardperiode.

Rep2
Ein arithmetischer Typ, der die Anzahl von Zeiteinheiten darstellt.

Hinweise

1) Der Standardkonstruktor erstellt ein Objekt, das nicht initialisiert ist. Durch die Wertinitialisierung mithilfe von leeren Klammern wird ein Objekt initialisiert, das ein Zeitintervall mit null Zeiteinheiten darstellt.

2) Der Kopierkonstruktor erstellt eine bitweise Kopie von d.

3) Erstellt ein Objekt, das ein Zeitintervall der R Taktstriche mit einem Standardzeitraum darstellt std::ratio<1>. Um eine Abrundung der Teilstrichanzahl zu vermeiden, ist es ein Fehler, ein Dauerobjekt aus einem Darstellungstyp Rep2 zu erstellen, der als Gleitkommatyp behandelt werden kann, wenn duration::rep er nicht als Gleitkommatyp behandelt werden kann.

4) Erstellt ein Objekt, das ein Zeitintervall darstellt, dessen Länge das durch Dur. Um das Abschneiden der Teilstrichanzahl zu vermeiden, ist es ein Fehler, ein Dauerobjekt aus einem anderen Dauerobjekt zu erstellen, dessen Typ mit dem Zieltyp nicht inkommensierbar ist.

Ein Dauertyp D1 ist mit einem anderen Dauertyp D2 inkommensierbar, wenn D2 er nicht als Gleitkommatyp behandelt werden kann und ratio_divide<D1::p eriod, D2::p eriod>::type::d en nicht 1 ist.

Sofern sie nicht Rep2 implizit in treat_as_floating_point<rep>rep"true" oder treat_as_floating_point<Rep2>"false" festgelegt ist, nimmt der zweite Konstruktor nicht an der Überladungsauflösung teil. Weitere Informationen finden Sie unter <type_traits>.

Sofern kein Überlauf in der Konvertierung induziert wird und treat_as_floating_point<rep>wahr ist oder beide ratio_divide<Period2, period>::den gleich 1 undtreat_as_floating_point<Rep2> "false" ist, nimmt der dritte Konstruktor nicht an der Überladungsauflösung teil. Weitere Informationen finden Sie unter <type_traits>.

Beispiel: Erstellen einer duration-Klasse

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

Statische Methode, von der die Obergrenze für Werte vom Vorlagenparametertyp Rep zurückgegeben wird.

static constexpr duration max();

Rückgabewert

Tatsächlich wird duration(duration_values<rep>::max()) zurückgegeben.

duration::min

Statische Methode, von der die Untergrenze für Werte vom Vorlagenparametertyp Rep zurückgegeben wird.

static constexpr duration min();

Rückgabewert

Tatsächlich wird duration(duration_values<rep>::min()) zurückgegeben.

duration::operator-

Gibt eine Kopie des duration Objekts mit einer negierten Teilstrichanzahl zurück.

constexpr duration operator-() const;

duration::operator--

Verringert die gespeicherte Taktanzahl.

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

Rückgabewert

1) Gibt zurück *this. 2) Gibt eine Kopie vor *this der Dekrementierung zurück.

duration::operator%=

Reduziert das gespeicherte Teilstrichanzahlmodul auf den angegebenen Wert.

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

Parameter

Div
1) Div eine Teilstrichanzahl. 2) Div ein duration Teilstrich, der eine Teilstrichanzahl enthält.

Rückgabewert

Das duration Objekt nach abschluss des Modulo-Vorgangs.

duration::operator*=

Multipliziert die gespeicherte Taktanzahl mit einem angegebenen Wert.

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

Parameter

Mult
Ein Wert des von duration::rep angegebenen Typs.

Rückgabewert

Das duration Objekt, nachdem die Multiplikation abgeschlossen wurde.

duration::operator/=

Dividiert die gespeicherte Taktanzahl mit einem angegebenen Wert.

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

Parameter

Div
Ein Wert des von duration::rep angegebenen Typs.

Rückgabewert

Das duration Objekt, nachdem die Division abgeschlossen wurde.

duration::operator+

Gibt *this zurück.

constexpr duration operator+() const;

Rückgabewert

*this

duration::operator++

Erhöht die gespeicherte Taktanzahl.

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

Rückgabewert

1) Gibt zurück *this. 2) Gibt eine Kopie vor *this dem Inkrement zurück.

duration::operator+=

Fügt der gespeicherten Taktanzahl die Taktanzahl eines angegebenen duration-Objekts hinzu.

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

Parameter

Dur
Ein duration-Objekt.

Rückgabewert

Das duration Objekt nach Abschluss der Hinzufügung.

duration::operator-=

Subtrahiert die Taktanzahl eines angegebenen duration-Objekts von der gespeicherten Taktanzahl.

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

Parameter

Dur
Ein duration-Objekt.

Rückgabewert

Das duration Objekt, nachdem die Subtraktion abgeschlossen wurde.

duration::zero

Gibt duration(duration_values<rep>::zero()) zurück.

static constexpr duration zero();

duration::operator=

Weist eine Dauer einem anderen zu.

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

Parameter

other
Das zu kopierende duration-Objekt.

Rückgabewert

Das LHS-Objekt duration .

Siehe auch

<chrono>
Convenience duration Typedefs wie minutes, seconds, und mehr
Komfortliterale für Stunden, Minuten und mehr
duration_values-Struktur
Headerdateienreferenz