std::chrono::nonexistent_local_time
| Definiert in Header <chrono> |
||
| class nonexistent_local_time; |
(seit C++20) | |
Definiert einen Objekttyp, der als Ausnahme geworfen wird, um zu melden, dass ein Versuch unternommen wurde, eine nicht existierende std::chrono::local_time in eine std::chrono::sys_time zu konvertieren, ohne eine std::chrono::choose (wie z.B. choose::earliest oder choose::latest) anzugeben.
Diese Ausnahme wird von std::chrono::time_zone::to_sys und Funktionen, die diese aufrufen (wie z.B. die Konstruktoren von std::chrono::zoned_time, die eine std::chrono::local_time entgegennehmen), geworfen.
Vererbungdiagramm
Inhalt |
[bearbeiten] Memberfunktionen
| (Konstruktor) |
konstruiert das Ausnahmeobjekt (öffentliche Memberfunktion) |
| operator= |
ersetzt das Ausnahmeobjekt (öffentliche Memberfunktion) |
| what |
gibt den erklärenden String zurück (öffentliche Memberfunktion) |
std::chrono::nonexistent_local_time::nonexistent_local_time
| template< class Duration > nonexistent_local_time( const std::chrono::local_time<Duration>& tp, |
(1) | (seit C++20) |
| nonexistent_local_time( const nonexistent_local_time& other ) noexcept; |
(2) | (seit C++20) |
Konstruiert das Ausnahmeobjekt.
what() zurückgegebene erklärende String ist äquivalent zu dem, der von os.str() nach dem folgenden Code erzeugt wird.std::ostringstream os; os << tp << " is in a gap between\n" << std::chrono::local_seconds(i.first.end.time_since_epoch()) + i.first.offset << ' ' << i.first.abbrev << " and\n" << std::chrono::local_seconds(i.second.begin.time_since_epoch()) + i.second.offset << ' ' << i.second.abbrev << " which are both equivalent to\n" << i.first.end << " UTC";
std::chrono::nonexistent_local_time haben, dann ist std::strcmp(what(), other.what()) == 0.Parameter
| tp | - | der Zeitpunkt, für den die Konvertierung versucht wurde |
| i | - | ein std::chrono::local_info, das das Ergebnis des Konvertierungsversuchs beschreibt |
| Sonstiges | - | ein anderes nonexistent_local_time zum Kopieren |
Ausnahmen
Kann std::bad_alloc werfen
Anmerkungen
Da das Kopieren einer von std::exception abgeleiteten Standardbibliotheksklasse keine Ausnahmen werfen darf, wird diese Nachricht typischerweise intern als separat zugeordneter referenzgezaehlter String gespeichert.
std::chrono::nonexistent_local_time::operator=
| nonexistent_local_time& operator=( const nonexistent_local_time& other ) noexcept; |
(seit C++20) | |
Weist den Inhalt von other zu. Wenn *this und other beide den dynamischen Typ std::chrono::nonexistent_local_time haben, dann ist std::strcmp(what(), other.what()) == 0 nach der Zuweisung.
Parameter
| Sonstiges | - | ein anderes Ausnahmeobjekt zum Zuweisen |
Rückgabewert
*this
std::chrono::nonexistent_local_time::what
virtual const char* what() const noexcept; |
(seit C++20) | |
Gibt den erklärenden String zurück.
Rückgabewert
Zeiger auf einen implementierungsdefinierten, nullterminierten String mit erläuternden Informationen. Der String kann für die Konvertierung und Anzeige als std::wstring verwendet werden. Der Zeiger ist garantiert gültig, mindestens bis das Ausnahmeobjekt, von dem er stammt, zerstört wird, oder bis eine nicht-const Memberfunktion (z. B. der Kopierzuweisungsoperator) für das Ausnahmeobjekt aufgerufen wird.
|
Der zurückgegebene String ist während der konstanten Auswertung mit der gewöhnlichen Literal-Codierung kodiert. |
(seit C++26) |
Anmerkungen
Implementierungen dürfen what() überschreiben, sind aber nicht dazu verpflichtet.
Geerbt von std::runtime_error
Abgeleitet von std::exception
Memberfunktionen
| [virtuell] |
zerstört das Ausnahmeobjekt (virtuelle öffentliche Memberfunktion von std::exception) |
| [virtuell] |
gibt einen erklärenden String zurück (virtuelle öffentliche Memberfunktion von std::exception) |
[bearbeiten] Siehe auch
| (C++20) |
Ausnahme, die geworfen wird, um zu melden, dass eine Lokalzeit mehrdeutig ist (Klasse) |