Namespaces
Variants

std::chrono:: ambiguous_local_time

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

Definiert eine Art von Objekt, das als Exception geworfen wird, um zu melden, dass versucht wurde, eine mehrdeutige std::chrono::local_time in eine std::chrono::sys_time umzuwandeln, ohne eine std::chrono::choose (wie 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-ambiguous 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::ambiguous_local_time:: ambiguous_local_time

template < class Duration >

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

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

Konstruiert das Ausnahmeobjekt.

1) Die von what ( ) zurückgegebene Erklärungszeichenkette entspricht derjenigen, die durch os. str ( ) nach folgendem Code erzeugt wird:
std::ostringstream os;
os << tp << " is ambiguous.  It could be\n"
   << tp << ' ' << i.first.abbrev << " == "
   << tp - i.first.offset << " UTC or\n"
   << tp << ' ' << i.second.abbrev  << " == "
   << tp - i.second.offset  << " UTC";
Das Verhalten ist undefiniert, wenn i. result ! = std :: chrono :: local_info :: ambiguous .
2) Kopierkonstruktor. Wenn * this und other beide den dynamischen Typ std::chrono::ambiguous_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 ambiguous_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::ambiguous_locale_time:: operator=

ambiguous_locale_time & operator = ( const ambiguous_locale_time & other ) noexcept ;
(since C++20)

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

Parameter

other - ein weiteres Ausnahmeobjekt, mit dem zugewiesen wird

Rückgabewert

* this

std::chrono::ambiguous_locale_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 erklärenden Informationen. Der String ist geeignet für 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 nicht existiert
(Klasse)