Namespaces
Variants

std::chrono:: ambiguous_local_time

From cppreference.net
Определено в заголовке <chrono>
class ambiguous_local_time ;
(начиная с C++20)

Определяет тип объекта, который будет выброшен как исключение для сообщения о попытке преобразования неоднозначного std::chrono::local_time в std::chrono::sys_time без указания std::chrono::choose (такого как choose::earliest или choose::latest ).

Это исключение выбрасывается функцией std::chrono::time_zone::to_sys и функциями, которые её вызывают (такими как конструкторы std::chrono::zoned_time , принимающие аргумент типа std::chrono::local_time ).

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

Диаграмма наследования

Содержание

Функции-члены

(constructor)
конструирует объект исключения
(public member function)
operator=
заменяет объект исключения
(public member function)
what
возвращает поясняющую строку
(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)

Создает объект исключения.

1) Пояснительная строка, возвращаемая what ( ) , эквивалентна строке, создаваемой os. str ( ) после выполнения следующего кода:
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";
Поведение не определено, если i. result ! = std :: chrono :: local_info :: ambiguous .
2) Конструктор копирования. Если * this и other оба имеют динамический тип std::chrono::ambiguous_local_time , то std:: strcmp ( what ( ) , other. what ( ) ) == 0 .

Параметры

tp - момент времени, для которого выполнялось преобразование
i - объект std::chrono::local_info , описывающий результат попытки преобразования
other - другой объект ambiguous_local_time для копирования

Исключения

Может выбрасывать std::bad_alloc

Примечания

Поскольку копирование классов стандартной библиотеки, производных от std::exception , не должно вызывать исключения, это сообщение обычно хранится внутри как отдельно выделенная строка с подсчетом ссылок.

std::chrono::ambiguous_locale_time:: operator=

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

Присваивает содержимое объекта other . Если * this и other оба имеют динамический тип std::chrono::ambiguous_locale_time , то после присваивания std:: strcmp ( what ( ) , other. what ( ) ) == 0 .

Параметры

other - другой объект исключения для присваивания

Возвращаемое значение

* this

std::chrono::ambiguous_locale_time:: what

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

Возвращает пояснительную строку.

Возвращаемое значение

Указатель на определяемую реализацией нуль-терминированную строку с пояснительной информацией. Строка подходит для преобразования и отображения как std::wstring . Гарантируется, что указатель остается действительным по крайней мере до тех пор, пока не будет уничтожен объект исключения, из которого он получен, или пока не будет вызвана неконстантная функция-член (например, оператор присваивания копированием) для объекта исключения.

Примечания

Реализациям разрешено, но не требуется, переопределять what() .

Унаследовано от std:: runtime_error


Унаследовано от std:: exception

Функции-члены

уничтожает объект исключения
(виртуальная публичная функция-член std::exception )
[virtual]
возвращает поясняющую строку
(виртуальная публичная функция-член std::exception )

Смотрите также

исключение, выбрасываемое для сообщения о том, что локальное время не существует
(класс)