std::chrono::get_tzdb_list, std::chrono::get_tzdb, std::chrono::remote_version, std::chrono::reload_tzdb
From cppreference.com
| std::chrono::tzdb_list& get_tzdb_list(); |
(1) | (C++20以降) |
| const std::chrono::tzdb& get_tzdb(); |
(2) | (C++20以降) |
| std::string remote_version(); |
(3) | (C++20以降) |
| const std::chrono::tzdb& reload_tzdb(); |
(4) | (C++20以降) |
これらの関数は、プログラム全体で使用されるタイムゾーンデータベースへのアクセスを提供します。
1) グローバルな std::chrono::tzdb_list シングルトンへの参照を返します。データベースへの最初のアクセスである場合、データベースを初期化します。初期化後、データベースは単一の初期化された std::chrono::tzdb オブジェクトを保持します。この関数はスレッドセーフです。複数のスレッドからこの関数に同時に呼び出しがあっても、データ競合は発生しません。
2)
tzdb_list シングルトンが保持する最初の std::chrono::tzdb オブジェクトへの参照を返します。std::chrono::get_tzdb_list().front() と等価です。3) 最新のリモートデータベースのバージョンを含む文字列を返します。
4) remote_version() != get_tzdb().version の場合、
get_tzdb_list() が参照する tzdb_list シングルトンに、リモートデータベースを表す新しい tzdb オブジェクトを先頭に追加します。それ以外の場合は何も効果はありません。参照、ポインタ、イテレータは無効になりません。この関数を get_tzdb_list().front() または get_tzdb_list().erase_after() と同時に呼び出しても、データ競合は発生しません。[編集] 例外
[編集] 戻り値
1) グローバルな std::chrono::tzdb_list シングルトンへの参照。
2) std::chrono::get_tzdb_list().front()。
3) 最新のリモートデータベースのバージョンを含む文字列。
4) std::chrono::get_tzdb_list().front() (この関数による更新後)。