std::chrono:: time_point
|
Definiert in Header
<chrono>
|
||
|
template
<
class
Clock,
|
(seit C++11) | |
Klassentemplate
std::chrono::time_point
repräsentiert einen Zeitpunkt. Es ist so implementiert, als speichere es einen Wert des Typs
Duration
, der das Zeitintervall vom Beginn der Epoche der
Clock
angibt.
|
|
(bis C++23) |
Inhaltsverzeichnis |
Mitgliedertypen
| Typ | Beschreibung |
Clock
clock
|
die Uhr, auf der dieser Zeitpunkt gemessen wird
(typedef) |
Duration
duration
|
ein
std::chrono::duration
Typ, der zur Messung der Zeit seit der Epoche verwendet wird
(typedef) |
duration::rep
rep
|
ein arithmetischer Typ, der die Anzahl der Ticks der Dauer repräsentiert
(typedef) |
duration::period
period
|
ein
std::ratio
Typ, der die Tick-Periode der Dauer repräsentiert
(typedef) |
Memberfunktionen
|
Konstruiert einen neuen Zeitpunkt
(öffentliche Elementfunktion) |
|
|
gibt den Zeitpunkt als Dauer seit Start der Uhr zurück
(öffentliche Elementfunktion) |
|
|
modifiziert den Zeitpunkt um die gegebene Dauer
(öffentliche Elementfunktion) |
|
|
erhöht oder verringert die Dauer
(öffentliche Elementfunktion) |
|
|
[static]
|
gibt den Zeitpunkt zurück, der der kleinsten Dauer entspricht
(öffentliche statische Elementfunktion) |
|
[static]
|
gibt den Zeitpunkt zurück, der der größten Dauer entspricht
(öffentliche statische Elementfunktion) |
Nicht-Member-Funktionen
|
(C++11)
|
führt Additions- und Subtraktionsoperationen mit einem Zeitpunkt durch
(Funktions-Template) |
|
(C++11)
(C++11)
(entfernt in C++20)
(C++11)
(C++11)
(C++11)
(C++11)
(C++20)
|
vergleicht zwei Zeitpunkte
(Funktions-Template) |
|
(C++11)
|
konvertiert einen Zeitpunkt zu einem anderen Zeitpunkt auf derselben Uhr mit einer anderen Dauer
(Funktions-Template) |
|
(C++17)
|
konvertiert einen time_point zu einem anderen, abgerundet
(Funktions-Template) |
|
(C++17)
|
konvertiert einen time_point zu einem anderen, aufgerundet
(Funktions-Template) |
|
(C++17)
|
konvertiert einen time_point zu einem anderen, gerundet auf den nächsten Wert, bei Gleichheit zur geraden Zahl
(Funktions-Template) |
Hilfsklassen
|
spezialisiert das
std::common_type
Merkmal
(Klassen-Template-Spezialisierung) |
|
|
Hash-Unterstützung für
std::chrono::time_point
(Klassen-Template-Spezialisierung) |
Beispiel
#include <algorithm> #include <chrono> #include <ctime> #include <iomanip> #include <iostream> void slow_motion() { static int a[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; // Generate Γ(13) == 12! permutations: while (std::ranges::next_permutation(a).found) {} } int main() { using namespace std::literals; // enables literal suffixes, e.g. 24h, 1ms, 1s. const std::chrono::time_point<std::chrono::system_clock> now = std::chrono::system_clock::now(); const std::time_t t_c = std::chrono::system_clock::to_time_t(now - 24h); std::cout << "Vor 24 Stunden war die Zeit " << std::put_time(std::localtime(&t_c), "%F %T.\n") << std::flush; const std::chrono::time_point<std::chrono::steady_clock> start = std::chrono::steady_clock::now(); std::cout << "Verschiedene Uhren sind nicht vergleichbar: \n" " Systemzeit: " << now.time_since_epoch() << "\n" " Stetige Zeit: " << start.time_since_epoch() << '\n'; slow_motion(); const auto end = std::chrono::steady_clock::now(); std::cout << "Langsame Berechnungen dauerten " << std::chrono::duration_cast<std::chrono::microseconds>(end - start) << " ≈ " << (end - start) / 1ms << "ms ≈ " // almost equivalent form of the above, but << (end - start) / 1s << "s.\n"; // using milliseconds and seconds accordingly }
Mögliche Ausgabe:
Vor 24 Stunden war die Zeit 2021-02-15 18:28:52. Verschiedene Uhren sind nicht vergleichbar: Systemzeit: 1666497022681282572ns Stetige Zeit: 413668317434475ns Langsame Berechnungen dauerten 2090448µs ≈ 2090ms ≈ 2s.
Siehe auch
|
(C++11)
|
ein Zeitintervall
(Klassentemplate) |
|
(C++20)
|
repräsentiert ein bestimmtes
year
,
month
und
day
(Klasse) |