WG21-N4878 [thread.req.paramname]/1: "Throughout this Clause, the names of template parameters are used to express type requirements. [...] If a template parameter is named Clock, the corresponding template argument shall be a type C for which is_clock_v<C> is true; otherwise the program is ill-formed."
C++23 P2212R2 "Relax Requirements for time_point::clock" changes this to: "If a template parameter is named Clock, the corresponding template argument shall be a type C that meets the Cpp17Clock requirements ([time.clock.req]); the program is ill-formed if is_clock_v<C> is false."
Either way, is_clock_v is supposed to be enforced (via the "ill-formed" wording), yet our headers never use is_clock_v.
WG21-N4878 [thread.req.paramname]/1: "Throughout this Clause, the names of template parameters are used to express type requirements. [...] If a template parameter is named
Clock, the corresponding template argument shall be a typeCfor whichis_clock_v<C>istrue; otherwise the program is ill-formed."C++23 P2212R2 "Relax Requirements for
time_point::clock" changes this to: "If a template parameter is namedClock, the corresponding template argument shall be a typeCthat meets the Cpp17Clock requirements ([time.clock.req]); the program is ill-formed ifis_clock_v<C>isfalse."Either way,
is_clock_vis supposed to be enforced (via the "ill-formed" wording), yet our headers never useis_clock_v.