std::chrono::get_tzdb_list, std::chrono::get_tzdb, std::chrono::remote_version, std::chrono::reload_tzdb
提供: 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 であれば、リモートデータベースを表す新しい
tzdb
オブジェクトを、 get_tzdb_list()
によって参照される tzdb_list
シングルトンの先頭にプッシュします。 いかなる参照、ポインタ、イテレータも無効化されません。 この関数を 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()。