std::chrono::zoned_time
ヘッダ <chrono> で定義 | ||
template< class Duration, | (C++20以上) | |
クラス zoned_time
は、タイムゾーンと、 Duration
の解像度を持つ std::chrono::time_point の、論理的なペアを表します。
zoned_time
の不変条件は、必ず有効なタイムゾーンを参照し、そのタイムゾーンにおいて存在している曖昧でない時点を表すことです。 この不変条件を維持するため、 zoned_time
はムーブコンストラクタやムーブ代入演算子を持ちません。 zoned_time
をムーブする試みはコピーを行います。
Duration
が std::chrono::duration の特殊化でない場合、プログラムは ill-formed です。
テンプレート引数 TimeZonePtr
はユーザが独自のタイムゾーンポインタ型を供給することを可能とし、 std::chrono::zoned_traits によって zoned_time
の動作をさらにカスタマイズすることを可能とします。 カスタムタイムゾーン型は std::chrono::time_zone がサポートしているすべての操作をサポートする必要はなく、 zoned_time
に対して実際に呼ばれた関数によって使用されるもののみが必要です。
TimeZonePtr
は MoveConstructible でなければなりません。 ムーブオンリーな TimeZonePtr
も使用可能ですが、 zoned_time
が移動不可能となり、格納されている TimeZonePtr
にアクセスすることができなくなるため、使うのが難しくなります。
目次 |
[編集] メンバ型
メンバ型 | 定義 |
duration | std::common_type_t<Duration, std::chrono::seconds> |
[編集] メンバ関数
zoned_time を構築します (パブリックメンバ関数) | |
値を zoned_time に代入します (パブリックメンバ関数) | |
タイムゾーンポインタのコピーを取得します (パブリックメンバ関数) | |
格納されている時点を local_time として取得します (パブリックメンバ関数) | |
格納されている時点を sys_time として取得します (パブリックメンバ関数) | |
格納されている時点のタイムゾーンに関する情報を取得します (パブリックメンバ関数) |
[編集] 非メンバ関数
2つの zoned_time オブジェクトを比較します (関数テンプレート) | |
zoned_time をストリームに出力します (関数テンプレート) |
[編集] ヘルパークラス
提供された書式に従って zoned_time を書式化する std::formatter の特殊化 (クラステンプレートの特殊化) |