namespace std::chrono {
class time_zone_link;
}
概要
time_zone_linkは、タイムゾーンの代替名を管理する型である。
このクラスの機能は、std::chrono::locate_zone()内で使用される。
例として、キプロス共和国の首都ニコシアはアジアに属するが、多くのユーザーはヨーロッパで見つかることを期待している。ニコシアは、ヨーロッパとアジアどちらでも見つかるようリンクされており、現在の正式な地域だけでなく (Asia/Nicosia)、リンクされた地域も指定できるようになっている。
using namespace std::chrono;
const time_zone* linked_tz = locate_zone("Europe/Nicosia"); // タイムゾーンの代替名
// 実際にタイムゾーンの時間計算に使用されるのはリンク先のタイムゾーン名
std::cout << linked_tz->name() << std::endl; // Asia/Nicosia
また、"UTC"や"GMT"も代替名であり、本来の名前は"Etc/UTC"、"Etc/GMT"となっている。
メンバ関数
構築/コピー/破棄
| 名前 | 説明 | 対応バージョン |
|---|---|---|
time_zone_link(time_zone_link&&) = default;その他未規定の追加コンストラクタがある |
コンストラクタ | C++20 |
time_zone_link& operator=(time_zone_link&&) = default; |
代入演算子 | C++20 |
観測
| 名前 | 説明 | 対応バージョン |
|---|---|---|
name |
タイムゾーンの代替名を取得する | C++20 |
target |
代替名に対応するタイムゾーンの名前を取得する | C++20 |
非メンバ関数
比較演算
| 名前 | 説明 | 対応バージョン |
|---|---|---|
operator== |
等値比較を行う | C++20 |
bool operator!=(const time_zone_link&, const time_zone_link&) noexcept; |
非等値比較を行う (==により使用可能) |
C++20 |
operator<=> |
三方比較を行う | C++20 |
bool operator<(const time_zone_link&, const time_zone_link&) noexcept; |
左辺が右辺より小さいかを判定する (<=>により使用可能) |
C++20 |
bool operator<=(const time_zone_link&, const time_zone_link&) noexcept; |
左辺が右辺以下を判定する (<=>により使用可能) |
C++20 |
bool operator>(const time_zone_link&, const time_zone_link&) noexcept; |
左辺が右辺より大きいかを判定する (<=>により使用可能) |
C++20 |
bool operator>=(const time_zone_link&, const time_zone_link&) noexcept; |
左辺が右辺以上を判定する (<=>により使用可能) |
C++20 |
バージョン
言語
- C++20
処理系
- Clang: 9.0 ❌
- GCC: 9.2 ❌
- Visual C++: 2019 Update 3 ❌
参照
- P1982R0 Rename
linktotime_zone_link- C++20の策定中、National Body Commentとして
linkというクラス名は一般的すぎて説明的ではないと指摘があり、time_zone_linkに名称変更された
- C++20の策定中、National Body Commentとして