Throughout this Clause, the names of template parameters are used to express type
requirements
. If a template parameter is named
Predicate,
operator() applied to
the template argument shall return a value that is convertible to
bool. 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.