名前空間
変種
操作

std::chrono::get_tzdb_list, std::chrono::get_tzdb, std::chrono::remote_version, std::chrono::reload_tzdb

提供: cppreference.com
< cpp‎ | chrono
 
 
 
日付と時間のユーティリティ
(C++11)
(C++11)
時計
(C++20)
                                                  
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
カレンダー
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
タイムゾーン
(C++20)
(C++20)
get_tzdbget_tzdb_listreload_tzdbremote_version
(C++20)(C++20)(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
C スタイルの日付と時間
 
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) 何らかの理由で、1つ以上の有効な tzdb を持つ tzdb_list の参照を返せない場合、 std::runtime_error

[編集] 戻り値

1) グローバルな std::chrono::tzdb_list シングルトンを指す参照。
2) std::chrono::get_tzdb_list().front()
3) 最新のリモートデータベースのバージョンを持つ文字列。
4) (この関数によって行われた更新後の) std::chrono::get_tzdb_list().front()