- chrono[meta header]
- std::chrono[meta namespace]
- class[meta id-type]
- cpp20[meta cpp]
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- locate_zone[link locate_zone.md]
- time_zone[link time_zone.md]
- name()[link time_zone/name.md]
また、"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として