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. |
Funktionen
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 duration ist. |
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 duration wert 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 duration subtrahiert 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