Namespaces
Variants

std::chrono:: nonexistent_local_time

From cppreference.net
Definiert im Header <chrono>
class nonexistent_local_time ;
(seit C++20)

Definiert eine Art von Objekt, das als Exception geworfen wird, um zu melden, dass versucht 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 sie aufrufen, geworfen (wie die Konstruktoren von std::chrono::zoned_time , die eine std::chrono::local_time entgegennehmen).

cpp/error/exception cpp/error/runtime error std-chrono-nonexistent local time-inheritance.svg

Vererbungsdiagramm

Inhaltsverzeichnis

Memberfunktionen

(constructor)
konstruiert das Exception-Objekt
(public member function)
operator=
ersetzt das Exception-Objekt
(public member function)
what
gibt den erklärenden String zurück
(public member function)

std::chrono::nonexistent_local_time:: nonexistent_local_time

template < class Duration >

nonexistent_local_time ( const std:: chrono :: local_time < Duration > & tp,

const std:: chrono :: local_info & i ) ;
(1) (since C++20)
nonexistent_local_time ( const nonexistent_local_time & other ) noexcept ;
(2) (since C++20)

Konstruiert das Ausnahmeobjekt.

1) Die von what() zurückgegebene Erklärungszeichenkette entspricht der durch os.str() erzeugten nach folgendem Code:
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";
Das Verhalten ist undefiniert, wenn i. result ! = std :: chrono :: local_info :: nonexistent .
2) Kopierkonstruktor. Wenn * this und other beide den dynamischen Typ std::chrono::nonexistent_local_time haben, dann gilt 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
other - ein weiteres 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 allokierter referenzgezählter String gespeichert.

std::chrono::nonexistent_locale_time:: operator=

nonexistent_locale_time & operator = ( const nonexistent_locale_time & other ) noexcept ;
(seit C++20)

Weist die Inhalte mit denen von other zu. Wenn * this und other beide den dynamischen Typ std::chrono::nonexistent_locale_time haben, dann gilt std:: strcmp ( what ( ) , other. what ( ) ) == 0 nach der Zuweisung.

Parameter

other - ein weiteres Ausnahmeobjekt zum Zuweisen

Rückgabewert

* this

std::chrono::nonexistent_locale_time:: what

virtual const char * what ( ) const noexcept ;
(seit C++20)

Gibt den erläuternden String zurück.

Rückgabewert

Zeiger auf einen implementierungsdefinierten nullterminierten String mit erläuternden Informationen. Der String eignet sich zur Konvertierung und Anzeige als std::wstring . Der Zeiger ist garantiert mindestens so lange gültig, bis das Ausnahmeobjekt, von dem er erhalten wurde, zerstört wird, oder bis eine nicht-konstante Memberfunktion (z.B. Kopierzuweisungsoperator) auf dem Ausnahmeobjekt aufgerufen wird.

Anmerkungen

Implementierungen dürfen, sind aber nicht verpflichtet, what() zu überschreiben.

Geerbt von std:: exception

Elementfunktionen

[virtual]
zerstört das Ausnahmeobjekt
(virtuelle öffentliche Elementfunktion von std::exception )
[virtual]
gibt einen erläuternden String zurück
(virtuelle öffentliche Elementfunktion von std::exception )

Siehe auch

Ausnahme, die geworfen wird, um zu melden, dass eine lokale Zeit mehrdeutig ist
(Klasse)