Namensräume
Varianten
Aktionen

std::chrono::duration

Aus cppreference.com
< cpp‎ | chrono
 
 
 
 
std::chrono::duration
Member-Funktionen
Original:
Member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
duration::duration
duration::operator=
duration::count
duration::zero
duration::min
duration::max
duration::operator+
duration::operator-
duration::operator++
duration::operator--
duration::operator+=
duration::operator-=
duration::operator*=
duration::operator/=
duration::operator%=
Non-Member-Funktionen
Original:
Non-member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
common_type
operator+
operator-
operator*
operator/
operator%
operator==
operator!=
operator<
operator<=
operator>
operator>=
duration_cast
Helper-Klassen
Original:
Helper classes
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
treat_as_floating_point
duration_values
 
definiert in Header <chrono>
template<

    class Rep,
    class Period = std::ratio<1>

> class duration;
(seit C++11)

Das Klassentemplate std::chrono::duration stellt ein Zeitintervall dar.

Es besteht aus einer Anzahl von Zeitschritten vom Typ Rep und einer Zeitschrittweite, wobei diese eine konstante, rational Zeit ist, die die Anzahl an Sekunden angibt, welche von einem Zeitschritt bis zum nächsten Zeitschritt vergeht.

In einem Zeitintervall duration wird nur die Anzahl der Zeitschritte gespeichert. Dabei ist die Anzahl vom Typ Rep. Falls Rep eine Gleitkommazahl ist, kann das Zeitintervall Bruchteile der Zeitschrittweite darstellen. Die Zeitschrittweite Period ist ein Teil des Typs des Zeitintervalls und wird nur verwendet, um verschiedene Zeitintervallen ineinander zu konvertieren.

Inhaltsverzeichnis

[Bearbeiten] Klassentypen

Klassentyp Definition
Rep Rep ist ein arithmetischer Zahlentyp, um die Anzahl an Zeitschritten zu speichern.
Period Period, ein std::ratio, welches die Zeitschrittweite, d.h. die Anzahl Sekunden pro Zeitschritt, darstellt.

[Bearbeiten] Klassenmethoden

erzeugt neues Intervall.
(öffentliche Elementfunktion) [edit]
weist Inhalte zu.
(öffentliche Elementfunktion) [edit]
gibt die Anzahl der Zeitschritte an.
(öffentliche Elementfunktion) [edit]
[statisch]
gibt den besonderen Wert des Nullintervalls zurück.
(public static Elementfunktion) [edit]
[statisch]
gibt den besonderen Wert des minimalen Intervalls zurück.
(public static Elementfunktion) [edit]
[statisch]
gibt den besonderen Wert des maximalen Intervalls zurück.
(public static Elementfunktion) [edit]
implementiert unäres + und unäres -.
(öffentliche Elementfunktion) [edit]
erhöht bzw. verringert die Anzahl der Zeitschritte.
(öffentliche Elementfunktion) [edit]
implementiert die kombinierten Zuweisungsoperator zwischen zwei Intervallen.
(öffentliche Elementfunktion) [edit]

[Bearbeiten] Typen außerhalb der Klasse

Typ Definition
std::chrono::nanoseconds Zeitintervall mit Zeitschrittweite in ns (std::nano)
std::chrono::microseconds Zeitintervall mit Zeitschrittweite in us (std::micro)
std::chrono::milliseconds Zeitintervall mit Zeitschrittweite in ms (std::milli)
std::chrono::seconds Zeitintervall mit Zeitschrittweite in s (std::ratio<1>)
std::chrono::minutes Zeitintervall mit Zeitschrittweite in min (std::ratio<60>)
std::chrono::hours Zeitintervall mit Zeitschrittweite in h (std::ratio<3600>)

[Bearbeiten] Funktionen außerhalb der Klasse

spezialisiert die Traitsklasse std::common_type.
(class Template-Spezialisierung) [edit]
implementiert arithmetische Operationen mit Zeitintervallen als Argumente.
(Funktions-Template) [edit]
vergleicht zwei Zeitintervalle.
(Funktions-Template) [edit]
wandelt ein Zeitintervall in ein anderes Zeitintervall mit einer anderen Zeitschrittweite um.
(Funktions-Template) [edit]

[Bearbeiten] Hilfsklassen

zeigt an, ob ein Zeitintervall in ein anderes Intervall mit verschiedener Zeitschrittweite konvertiert werden kann
(Klassen-Template)
erzeugt Null-, Minimum- und Maximumwerte eines Zeitschrittewertes vom gegebenen Typ
(Klassen-Template)

[Bearbeiten] Beispiel

Diese Beispiel zeigt, wie man verschiedene eigene Zeitintervalle definieren und zwischen ihnen hin- und herkonvertieren kann:

#include <iostream>
#include <chrono>
 
int main()
{
    typedef std::chrono::duration<int, std::ratio<1, 100000000>> shakes;
    typedef std::chrono::duration<int, std::centi> jiffies;
    typedef std::chrono::duration<float, std::ratio<12096,10000>> microfortnights;
    typedef std::chrono::duration<float, std::ratio<3155,1000>> nanocenturies;
 
    std::chrono::seconds sec(1);
 
    std::cout << "1 second is:\n";
 
    std::cout << std::chrono::duration_cast<shakes>(sec).count()
              << " shakes\n";
    std::cout << std::chrono::duration_cast<jiffies>(sec).count()
              << " jiffies\n";
    std::cout << std::chrono::duration_cast<microfortnights>(sec).count()
              << " microfortnights\n";
    std::cout << std::chrono::duration_cast<nanocenturies>(sec).count()
              << " nanocenturies\n";
}

Output:

1 second is:
100000000 shakes
100 jiffies
0.82672 microfortnights
0.316957 nanocenturies