30 Time library [time]

30.14 Hash support [time.hash]

template<class Rep, class Period> struct hash<chrono::duration<Rep, Period>>;
The specialization hash<chrono​::​duration<Rep, Period>> is enabled ([unord.hash]) if and only if
hash<Rep> is enabled.
The member functions are not guaranteed to be noexcept.
template<class Clock, class Duration> struct hash<chrono::time_point<Clock, Duration>>;
The specialization hash<chrono​::​time_point<Clock, Duration>> is enabled ([unord.hash]) if and only if hash<Duration> is enabled.
The member functions are not guaranteed to be noexcept.
template<> struct hash<chrono::day>; template<> struct hash<chrono::month>; template<> struct hash<chrono::year>; template<> struct hash<chrono::weekday>; template<> struct hash<chrono::weekday_indexed>; template<> struct hash<chrono::weekday_last>; template<> struct hash<chrono::month_day>; template<> struct hash<chrono::month_day_last>; template<> struct hash<chrono::month_weekday>; template<> struct hash<chrono::month_weekday_last>; template<> struct hash<chrono::year_month>; template<> struct hash<chrono::year_month_day>; template<> struct hash<chrono::year_month_day_last>; template<> struct hash<chrono::year_month_weekday>; template<> struct hash<chrono::year_month_weekday_last>;
The specializations are enabled ([unord.hash]).
[Note 1: 
All the hash<Key> specializations listed above meet the Cpp17Hash requirements, even when called on objects k of type Key such that k.ok() is false.
— end note]
template<class Duration, class TimeZonePtr> struct hash<chrono::zoned_time<Duration, TimeZonePtr>>;
The specialization hash<chrono​::​zoned_time<Duration, TimeZonePtr>> is enabled ([unord.hash]) if and only if hash<Duration> is enabled and hash<TimeZonePtr> is enabled.
The member functions are not guaranteed to be noexcept.
template<> struct hash<chrono::leap_second>;
The specialization is enabled ([unord.hash]).