diff --git a/source/support.tex b/source/support.tex index 6ff283cefb..ad3581bc4c 100644 --- a/source/support.tex +++ b/source/support.tex @@ -585,7 +585,7 @@ #define @\defnlibxname{cpp_lib_byteswap}@ 202110L // also in \libheader{bit} #define @\defnlibxname{cpp_lib_char8_t}@ 201907L // also in \libheader{atomic}, \libheader{filesystem}, \libheader{istream}, \libheader{limits}, \libheader{locale}, \libheader{ostream}, \libheader{string}, \libheader{string_view} -#define @\defnlibxname{cpp_lib_chrono}@ 201907L // also in \libheader{chrono} +#define @\defnlibxname{cpp_lib_chrono}@ 202306L // also in \libheader{chrono} #define @\defnlibxname{cpp_lib_chrono_udls}@ 201304L // also in \libheader{chrono} #define @\defnlibxname{cpp_lib_clamp}@ 201603L // also in \libheader{algorithm} #define @\defnlibxname{cpp_lib_common_reference}@ 202302L // also in \libheader{type_traits} diff --git a/source/time.tex b/source/time.tex index 34911e8f7e..4b75dc2a7a 100644 --- a/source/time.tex +++ b/source/time.tex @@ -942,6 +942,31 @@ namespace std::chrono { using namespace literals::chrono_literals; } + +namespace std { + // \ref{time.hash}, hash support + template struct hash; + template struct hash>; + template struct hash>; + template<> struct hash; + template<> struct hash; + template<> struct hash; + template<> struct hash; + template<> struct hash; + template<> struct hash; + template<> struct hash; + template<> struct hash; + template<> struct hash; + template<> struct hash; + template<> struct hash; + template<> struct hash; + template<> struct hash; + template<> struct hash; + template<> struct hash; + template + struct hash>; + template<> struct hash; +} \end{codeblock} \rSec1[time.clock.req]{\oldconcept{Clock} requirements} @@ -11449,6 +11474,101 @@ \indexlibrary{\idxcode{parse}|)} +\rSec1[time.hash]{Hash support} + +\indexlibrarymember{hash}{duration}% +\begin{itemdecl} +template struct hash>; +\end{itemdecl} + +\begin{itemdescr} +\pnum +The specialization \tcode{hash>} is enabled\iref{unord.hash} +if and only if \\% newline to fix overfull hbox +\tcode{hash} is enabled. +The member functions are not guaranteed to be \keyword{noexcept}. +\end{itemdescr} + +\indexlibrarymember{hash}{time_point}% +\begin{itemdecl} +template struct hash>; +\end{itemdecl} + +\begin{itemdescr} +\pnum +The specialization \tcode{hash>} is enabled\iref{unord.hash} +if and only if \tcode{hash} is enabled. +The member functions are not guaranteed to be \keyword{noexcept}. +\end{itemdescr} + +\indexlibrarymember{hash}{day}% +\indexlibrarymember{hash}{month}% +\indexlibrarymember{hash}{year}% +\indexlibrarymember{hash}{weekday}% +\indexlibrarymember{hash}{weekday_indexed}% +\indexlibrarymember{hash}{weekday_last}% +\indexlibrarymember{hash}{month_day}% +\indexlibrarymember{hash}{month_day_last}% +\indexlibrarymember{hash}{month_weekday}% +\indexlibrarymember{hash}{month_weekday_last}% +\indexlibrarymember{hash}{year_month}% +\indexlibrarymember{hash}{year_month_day}% +\indexlibrarymember{hash}{year_month_day_last}% +\indexlibrarymember{hash}{year_month_weekday}% +\indexlibrarymember{hash}{year_month_weekday_last}% +\begin{itemdecl} +template<> struct hash; +template<> struct hash; +template<> struct hash; +template<> struct hash; +template<> struct hash; +template<> struct hash; +template<> struct hash; +template<> struct hash; +template<> struct hash; +template<> struct hash; +template<> struct hash; +template<> struct hash; +template<> struct hash; +template<> struct hash; +template<> struct hash; +\end{itemdecl} + +\begin{itemdescr} +\pnum +The specializations are enabled\iref{unord.hash}. +\begin{note} +All the \tcode{hash} specializations listed above meet the +\oldconcept{Cpp17Hash} requirements, even when called on objects \tcode{k} +of type \tcode{Key} such that \tcode{k.ok()} is \tcode{false}. +\end{note} +\end{itemdescr} + +\indexlibrarymember{hash}{zoned_time}% +\begin{itemdecl} +template + struct hash>; +\end{itemdecl} + +\begin{itemdescr} +\pnum +The specialization \tcode{hash>} +is enabled\iref{unord.hash} +if and only if \tcode{hash} is enabled and +\tcode{hash} is enabled. +The member functions are not guaranteed to be \keyword{noexcept}. +\end{itemdescr} + +\indexlibrarymember{hash}{leap_second}% +\begin{itemdecl} +template<> struct hash; +\end{itemdecl} + +\begin{itemdescr} +\pnum +The specialization is enabled\iref{unord.hash}. +\end{itemdescr} + \rSec1[ctime.syn]{Header \tcode{} synopsis} \indexheader{ctime}%