std::chrono::get_tzdb_list, std::chrono::get_tzdb, std::chrono::remote_version
Материал из cppreference.com
std::chrono::tzdb_list& get_tzdb_list(); | (1) | (начиная с C++20) |
conststd::chrono::tzdb& get_tzdb(); | (2) | (начиная с C++20) |
std::string remote_version(); | (3) | (начиная с C++20) |
conststd::chrono::tzdb& reload_tzdb(); | (4) | (начиная с C++20) |
Эти функции обеспечивают доступ к общепрограммной базе данных часовых поясов.
1) Возвращает ссылку на глобальный синглтон std::chrono::tzdb_list. Если это первый доступ к базе данных, инициализирует базу данных. После инициализации база данных будет содержать один инициализированный объект std::chrono::tzdb. Эта функция потокобезопасна: одновременные вызовы этой функции из нескольких потоков не приводят к гонке данных.
2) Возвращает ссылку на первый объект std::chrono::tzdb, содержащийся в синглтоне
tzdb_list
. Эквивалент std::chrono::get_tzdb_list().front().3) Возвращает строку, содержащую последнюю версию удалённой базы данных.
4) Если remote_version()!= get_tzdb().version, помещает новый объект
tzdb
, представляющий удалённую базу данных, в начало синглтона tzdb_list
, на который ссылается get_tzdb_list()
. Иначе нет никаких эффектов. Никакие ссылки, указатели или итераторы не становятся недействительными. Вызов этой функции одновременно с get_tzdb_list().front() или get_tzdb_list().erase_after() не приводит к гонке данных.[править]Исключения
1)std::runtime_error, если по какой-либо причине ссылка на
tzdb_list
, содержащая один или несколько действительных tzdb
, не может быть возвращена.[править]Возвращаемое значение
1) Ссылка на глобальный синглтон std::chrono::tzdb_list.
2)std::chrono::get_tzdb_list().front().
3) Строка, содержащая последнюю версию удалённой базы данных.
4)std::chrono::get_tzdb_list().front() (после любого обновления, сделанного этой функцией).