The LEWG in Belfast requested that I write a paper which provides
wording for
DE 346
as modified by the discussion in LEWG. The LEWG chose the name
time_zone_link as a replacement for link,
and specifically chose not to change the associated data member of
tzdb links.
Modify the synopsis in [time.syn] as indicated:
... // 27.11.9, class link class link; bool operator==(const link& x, const link& y); strong_ordering operator<=>(const link& x, const link& y); ...
Modify the synopsis in [time.zone.db.tzdb] as indicated:
namespace std::chrono {
struct tzdb {
string version;
vector<time_zone> zones;
vector<link> links;
vector<leap> leaps;
const time_zone* locate_zone(string_view tz_name) const;
const time_zone* current_zone() const;
};
}
Modify [time.zone.db.tzdb]/p2 as indicated:
const time_zone* locate_zone(string_view tz_name) const;2 Returns:
If atime_zoneis found for whichname() == tz_name, returns a pointer to thattime_zone. Otherwise if alinkis found for whichtz_name == link.name(), then a pointer is returned to thetime_zonefor whichzone.name() == link.target().
[Note: A
linkspecifies an alternative name for atime_zone. — end note]
Modify the title of [time.zone.link] as indicated:
Class link
Modify [time.zone.link.overview] as indicated:
namespace std::chrono { class link { public: link(link&&) = default; link& operator=(link&&) = default; // unspecified additional constructors string_view name() const noexcept; string_view target() const noexcept; }; }1 A
linkspecifies an alternative name for atime_zone.links are constructed when the time zone database is initialized.
Modify [time.zone.link.members]/p2 as indicated:
string_view target() const noexcept;2 Returns: The name of the
time_zonefor which thislinkprovides an alternative name.
Modify [time.zone.link.nonmembers] as indicated:
bool operator==(const link& x, const link& y) noexcept;1 Returns:
x.name() == y.name().strong_ordering operator<=>(const link& x, const link& y) noexcept;2 Returns:
x.name() <=> y.name().