Namespaces
Variants

std::chrono:: nonexistent_local_time

From cppreference.net
Определено в заголовочном файле <chrono>
class nonexistent_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-nonexistent local time-inheritance.svg

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

Содержание

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

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

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

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

Параметры

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

Исключения

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

Примечания

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

std::chrono::nonexistent_locale_time:: operator=

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

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

Параметры

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

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

* this

std::chrono::nonexistent_locale_time:: what

virtual const char * what ( ) const noexcept ;
(начиная с C++20)

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

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

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

Примечания

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

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


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

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

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

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

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