Namespaces
Variants

std::chrono:: ambiguous_local_time

From cppreference.net
Défini dans l'en-tête <chrono>
class ambiguous_local_time ;
(depuis C++20)

Définit un type d'objet à lever comme exception pour signaler qu'une tentative a été faite pour convertir un std::chrono::local_time ambigu en un std::chrono::sys_time sans spécifier un std::chrono::choose (tel que choose::earliest ou choose::latest ).

Cette exception est levée par std::chrono::time_zone::to_sys et les fonctions qui l'appellent (telles que les constructeurs de std::chrono::zoned_time qui prennent un std::chrono::local_time ).

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

Diagramme d'héritage

Table des matières

Fonctions membres

(constructor)
construit l'objet d'exception
(fonction membre publique)
operator=
remplace l'objet d'exception
(fonction membre publique)
what
retourne la chaîne explicative
(fonction membre publique)

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)

Construit l'objet d'exception.

1) La chaîne explicative retournée par what ( ) est équivalente à celle produite par os. str ( ) après le code suivant :
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";
Le comportement est indéfini si i. result ! = std :: chrono :: local_info :: ambiguous .
2) Constructeur de copie. Si * this et other ont tous deux le type dynamique std::chrono::ambiguous_local_time alors std:: strcmp ( what ( ) , other. what ( ) ) == 0 .

Paramètres

tp - le point temporel pour lequel la conversion a été tentée
i - un std::chrono::local_info décrivant le résultat de la tentative de conversion
other - un autre ambiguous_local_time à copier

Exceptions

Peut lever std::bad_alloc

Notes

Étant donné que la copie d'une classe de la bibliothèque standard dérivée de std::exception n'est pas autorisée à lever des exceptions, ce message est généralement stocké en interne sous forme de chaîne à comptage de références allouée séparément.

std::chrono::ambiguous_locale_time:: operator=

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

Assigne le contenu avec celui de other . Si * this et other ont tous deux le type dynamique std::chrono::ambiguous_locale_time alors std:: strcmp ( what ( ) , other. what ( ) ) == 0 après l'assignation.

Paramètres

other - autre objet d'exception à assigner

Valeur de retour

* this

std::chrono::ambiguous_locale_time:: what

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

Retourne la chaîne explicative.

Valeur de retour

Pointeur vers une chaîne terminée par un caractère nul définie par l'implémentation contenant des informations explicatives. La chaîne est adaptée à la conversion et à l'affichage en tant que std::wstring . Le pointeur est garanti d'être valide au moins jusqu'à la destruction de l'objet exception duquel il est obtenu, ou jusqu'à l'appel d'une fonction membre non constante (par exemple, l'opérateur d'affectation par copie) sur l'objet exception.

Notes

Les implémentations sont autorisées mais non obligées de redéfinir what() .

Hérité de std:: exception

Fonctions membres

[virtual]
détruit l'objet exception
(fonction membre publique virtuelle de std::exception )
[virtual]
retourne une chaîne explicative
(fonction membre publique virtuelle de std::exception )

Voir aussi

exception levée pour signaler qu'une heure locale n'existe pas
(classe)